summaryrefslogtreecommitdiffstats
path: root/CMakePresets.json
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2023-12-08 19:24:34 +0800
committerGitHub <noreply@github.com>2023-12-08 19:24:34 +0800
commit4321929879c1ed5b87ff95a99ca7da91e28d18fd (patch)
treeae1460dcb652981468e6fa4897e87b697f2bda33 /CMakePresets.json
parent9903688ccc0793259d43f95cae88bd1a8e178824 (diff)
WIP: CMake (#3326)
* More robust input and output selection in generator tools * Add cmake build system * Get slang-test running with cmake * Bump lz4 and miniz dependencies * Make cmake build more declarative * Correct preprocessor logic in slang.h * Add cuda test to compute/simple * Remove empty cmake files * output placement for cmake, and commenting * Correct include paths in spirv-embed-generator * Format cmake with gersemi * Make cmake build clerer * Neaten header generation Also work around https://gitlab.kitware.com/cmake/cmake/-/issues/18399 by introducing correct_generated_properties to set the GENERATED flag in the correct scope * remove unused files * use 3.20 to set GENERATOR property properly * spelling * more flexible linker arg setting * replace slang-static with obj collection * Set rpath and linker path correctly * neaten generated file generation * tests working with cmake build * fix premake5 build * comment and neaten cmake * remove unnecessary dependency * Build aftermath example only when aftermath is enabled * Add slang-llvm and other dependencies * Put modules alongside binaries * Find slang-glslang correctly * Better option handling * comments * add llvm build test * Better option handling * cmake wobble * use UNICODE and _UNICODE * remove other workflows * use ccache * neaten * limit parallel for llvm build * use ninja for build * Windows and Darwin slang-llvm builds * cache key * verbose llvm build * cl on windows * sccache and cl.exe * use cl.exe * Correct package detection * less verbosity * Simplify miniz inclusion * fix build with sccache * Neaten llvm building * neaten * Neaten slang-llvm fetching * more surgical workarounds * Add ci action * Get version from git * better variable naming * add missing include * clean up after premake in cmake * more docs on cmake build * ci wobble * add imgui target * more selective source * do not download swiftshader * Some missing dependencies * only build llvm on dispatch * Disable /Zi in CI where sccache is present * simplify * set PIC for miniz * set policies before project * reengage workaround * more runs on ci * Add cmake presets * Add cpack * move iterator debug level to preset * Correct lib flag * simplify action * Neaten cmake init * Add todo * Add simple test wrapper * Add tests to workflow presets * rename packing preset * Correctly set definitions * docs * correct preset names * Make slang-test depend on test-server/test-process * neaten * use workflow in actions * install docs * Correct module install dir * debug dist workflow * Install headers * neaten header globbing * Neaten dependency handling * make lib and bin variables * Do not set compiler for vs builds, unnecessary * docs * allow setting explicit source for target * maintain archive subdir * cmake docs * install headers * place targets into folders * cmake docs * nest external projects in folder * remove name clash * Neater external packages * meta targets in folder structure * cleaner slang-glslang dll * Add missing static directive to slang-no-embedded-stdlib * more robust module copying * make slang-test the startup project * folder tweak * Make FETCH_BINARY the default on all platforms * Set DEBUG_DIR * add natvis files to source * skip spirv tests * remove test step from debug dist * Add build to .gitignore * redo warnings to be more like premake * Update imgui * clean more premake files * Disable PCH for glslang, gcc throws a warning * Add /MP for msvc builds * warning wobble * Add script to build llvm * Add slang-llvm and generators components * Build slang-llvm in ci * comments * fetch llvm with git * better abi approximation for cache * better sccache key * formatting * Correct logic around disabling problematic debug info for ccache * exclude gcc and clang from windows ci * Make dist workflows use system llvm * naming * restore normal dist builds * formatting * run tests in ci * Correct slang-llvm url setting * Rely on the system to find the test tool library * actions matrix wiggle * cope with OSX ancient bash * Correct compilers on windows * more ci debugging * Correct rpath handling on OSX * neaten * correct path to slang-llvm * Correct rpath separator on osx * Find slang-llvm correctly * smoke tests only on osx * ci wobble * Give MacOS module a dylib suffix * get swiftshader correctly * cope with bsd cp * remove debug output * full tests on osx * ci wobble * Add some vk tests to expected failures * simplify ci * ci wobble * exclude dx12 tests from github ci * remove cmake code for building llvm * warnings * warnings as errors for cl * spirv-tools in path * add aarch64 ci build * Add SLANG_GENERATORS_PATH option for prebuilt generators * neaten * Correct generator target name * remove yaml anchors because github actions does not support them * Demote CMake in docs Also add info on cross compiling * Restore premake CI * use minimal ci for cmake * Write miniz_export for premake build and .gitignore it * Mention build config tool options in docs * Remove redefined macro for miniz * regenerate vs project
Diffstat (limited to 'CMakePresets.json')
-rw-r--r--CMakePresets.json197
1 files changed, 197 insertions, 0 deletions
diff --git a/CMakePresets.json b/CMakePresets.json
new file mode 100644
index 000000000..c23fbada1
--- /dev/null
+++ b/CMakePresets.json
@@ -0,0 +1,197 @@
+{
+ "version": 6,
+ "cmakeMinimumRequired": {
+ "major": 3,
+ "minor": 20,
+ "patch": 0
+ },
+ "configurePresets": [
+ {
+ "name": "default",
+ "description": "Default build using Ninja Multi-Config generator",
+ "generator": "Ninja Multi-Config",
+ "binaryDir": "${sourceDir}/build"
+ },
+ {
+ "name": "msvc-base",
+ "hidden": true,
+ "inherits": "default",
+ "description": "Options specific for MSVC",
+ "cacheVariables": {
+ "CMAKE_C_FLAGS_INIT": "-D_ITERATOR_DEBUG_LEVEL=0 /MP",
+ "CMAKE_CXX_FLAGS_INIT": "-D_ITERATOR_DEBUG_LEVEL=0 /MP"
+ }
+ },
+ {
+ "name": "vs2019",
+ "inherits": "msvc-base",
+ "description": "Visual Studio 2019 project",
+ "generator": "Visual Studio 16 2019"
+ },
+ {
+ "name": "vs2022",
+ "inherits": "msvc-base",
+ "description": "Visual Studio 2022 project",
+ "generator": "Visual Studio 17 2022"
+ },
+ {
+ "name": "single-component",
+ "inherits": "default",
+ "description": "configure to package a single component",
+ "cacheVariables": {
+ "CPACK_ARCHIVE_COMPONENT_INSTALL": "ON"
+ }
+ },
+ {
+ "name": "slang-llvm",
+ "inherits": "single-component",
+ "description": "Build slang-llvm from the system LLVM",
+ "cacheVariables": {
+ "SLANG_SLANG_LLVM_FLAVOR": "USE_SYSTEM_LLVM"
+ }
+ }
+ ],
+ "buildPresets": [
+ {
+ "name": "debug",
+ "configurePreset": "default",
+ "configuration": "Debug"
+ },
+ {
+ "name": "release",
+ "configurePreset": "default",
+ "configuration": "Release"
+ },
+ {
+ "name": "generators",
+ "inherits": "release",
+ "configurePreset": "single-component",
+ "targets": [
+ "all-generators"
+ ]
+ },
+ {
+ "name": "slang-llvm",
+ "inherits": "release",
+ "configurePreset": "slang-llvm",
+ "targets": [
+ "slang-llvm"
+ ]
+ }
+ ],
+ "packagePresets": [
+ {
+ "name": "base",
+ "hidden": true,
+ "configurePreset": "default",
+ "generators": [
+ "ZIP"
+ ],
+ "variables": {
+ "CPACK_PACKAGE_FILE_NAME": "slang"
+ }
+ },
+ {
+ "name": "release",
+ "inherits": "base",
+ "configurations": [
+ "Release"
+ ],
+ "packageDirectory": "dist-release"
+ },
+ {
+ "name": "debug",
+ "inherits": "base",
+ "configurations": [
+ "Debug"
+ ],
+ "packageDirectory": "dist-debug"
+ },
+ {
+ "name": "generators",
+ "inherits": "release",
+ "configurePreset": "single-component",
+ "variables": {
+ "CPACK_COMPONENTS_ALL": "generators"
+ }
+ },
+ {
+ "name": "slang-llvm",
+ "inherits": "release",
+ "configurePreset": "slang-llvm",
+ "variables": {
+ "CPACK_COMPONENTS_ALL": "slang-llvm"
+ }
+ }
+ ],
+ "workflowPresets": [
+ {
+ "name": "debug",
+ "steps": [
+ {
+ "type": "configure",
+ "name": "default"
+ },
+ {
+ "type": "build",
+ "name": "debug"
+ },
+ {
+ "type": "package",
+ "name": "debug"
+ }
+ ]
+ },
+ {
+ "name": "release",
+ "steps": [
+ {
+ "type": "configure",
+ "name": "default"
+ },
+ {
+ "type": "build",
+ "name": "release"
+ },
+ {
+ "type": "package",
+ "name": "release"
+ }
+ ]
+ },
+ {
+ "name": "generators",
+ "steps": [
+ {
+ "type": "configure",
+ "name": "single-component"
+ },
+ {
+ "type": "build",
+ "name": "generators"
+ },
+ {
+ "type": "package",
+ "name": "generators"
+ }
+ ]
+ },
+ {
+ "name": "slang-llvm",
+ "steps": [
+ {
+ "type": "configure",
+ "name": "slang-llvm"
+ },
+ {
+ "type": "build",
+ "name": "slang-llvm"
+ },
+ {
+ "type": "package",
+ "name": "slang-llvm"
+ }
+ ]
+ }
+ ]
+}