1
- set (NBL_EXTRA_SOURCES
2
- # TODO: Cypi list extra sources if you need
3
- )
4
-
5
- nbl_create_executable_project ("${NBL_EXTRA_SOURCES} " "" "" "" )
1
+ nbl_create_executable_project ("" "" "" "" )
6
2
7
3
enable_testing ()
8
4
9
- set (NBL_NSC_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /tests/install" )
10
- set (NBL_NSC_COMPILE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /tests/compile" )
5
+ set (GODBOLT_BINARY_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /compiler-explorer" )
6
+ set (GODBOLT_BINARY_PRETEST_DIRECTORY "${GODBOLT_BINARY_DIRECTORY} /pre-test" )
7
+ set (NBL_NSC_COMPILE_DIRECTORY "${GODBOLT_BINARY_PRETEST_DIRECTORY} /.compile/$<CONFIG>" )
8
+ set (NBL_DOCKER_CT_NSC_VOLUME_SOURCE "${GODBOLT_BINARY_DIRECTORY} /install" )
11
9
12
10
add_test (NAME NBL_NSC_INSTALL_RUNTIMES_TEST
13
- COMMAND "${CMAKE_COMMAND} " --install . --config $< CONFIG> --prefix "${NBL_NSC_INSTALL_PREFIX } " --component Runtimes
11
+ COMMAND "${CMAKE_COMMAND} " --install . --config $< CONFIG> --prefix "${NBL_DOCKER_CT_NSC_VOLUME_SOURCE } " --component Runtimes
14
12
WORKING_DIRECTORY "${NBL_ROOT_PATH_BINARY} "
15
13
COMMAND_EXPAND_LISTS
16
14
)
17
15
18
16
add_test (NAME NBL_NSC_INSTALL_EXECUTABLES_TEST
19
- COMMAND "${CMAKE_COMMAND} " --install . --config $< CONFIG> --prefix "${NBL_NSC_INSTALL_PREFIX } " --component Executables
17
+ COMMAND "${CMAKE_COMMAND} " --install . --config $< CONFIG> --prefix "${NBL_DOCKER_CT_NSC_VOLUME_SOURCE } " --component Executables
20
18
WORKING_DIRECTORY "${NBL_ROOT_PATH_BINARY} "
21
19
COMMAND_EXPAND_LISTS
22
20
)
@@ -31,12 +29,99 @@ set(NBL_NSC_COMPILE_COMMAND
31
29
32
30
add_test (NAME NBL_NSC_COMPILE_AT_EXE_CWD_TEST
33
31
COMMAND "$<TARGET_FILE_BASE_NAME:${EXECUTABLE_NAME} >" ${NBL_NSC_COMPILE_COMMAND}
34
- WORKING_DIRECTORY "${NBL_NSC_INSTALL_PREFIX } /${NBL_PACKAGE_RUNTIME_EXE_DIR_PATH} "
32
+ WORKING_DIRECTORY "${NBL_DOCKER_CT_NSC_VOLUME_SOURCE } /${NBL_PACKAGE_RUNTIME_EXE_DIR_PATH} "
35
33
COMMAND_EXPAND_LISTS
36
34
)
37
35
38
36
add_test (NAME NBL_NSC_COMPILE_CUSTOM_CWD_TEST
39
37
COMMAND "${NBL_PACKAGE_RUNTIME_EXE_DIR_PATH} /$<TARGET_FILE_BASE_NAME:${EXECUTABLE_NAME} >" ${NBL_NSC_COMPILE_COMMAND}
40
- WORKING_DIRECTORY "${NBL_NSC_INSTALL_PREFIX } "
38
+ WORKING_DIRECTORY "${NBL_DOCKER_CT_NSC_VOLUME_SOURCE } "
41
39
COMMAND_EXPAND_LISTS
42
- )
40
+ )
41
+
42
+ set (NBL_DOCKER_NSC_COMPILER_CONFIG_OUTPUT "${NBL_DOCKER_CT_NSC_VOLUME_SOURCE} /hlsl.local.properties.cmake" )
43
+
44
+ set (NBL_DOCKER_CT_NSC_VOLUME_TARGET "C:\\ nsc\\ install" )
45
+ string (GENEX_STRIP "${NBL_PACKAGE_RUNTIME_EXE_DIR_PATH} " NBL_RELATIVE_ENTRY )
46
+ set (NSC_RELEASE_EXECUTABLE "${NBL_DOCKER_CT_NSC_VOLUME_TARGET} /${NBL_RELATIVE_ENTRY} /${EXECUTABLE_NAME} " )
47
+ set (NSC_DEBUG_EXECUTABLE "${NBL_DOCKER_CT_NSC_VOLUME_TARGET} /debug/${NBL_RELATIVE_ENTRY} /${EXECUTABLE_NAME} _d" )
48
+ cmake_path (NATIVE_PATH NSC_RELEASE_EXECUTABLE NORMALIZE NSC_RELEASE_EXECUTABLE )
49
+ cmake_path (NATIVE_PATH NSC_DEBUG_EXECUTABLE NORMALIZE NSC_DEBUG_EXECUTABLE )
50
+ set (NABLA_SHA "TODO" )
51
+
52
+ string (APPEND CONFIG_CONTENT
53
+ [=[
54
+ compilers=&dxc
55
+
56
+ defaultCompiler=nsc_release_upstream
57
+ supportsBinary=false
58
+ compilerType=hlsl
59
+ instructionSet=llvm
60
+
61
+ group.dxc.compilers=nsc_release_upstream:nsc_debug_upstream
62
+ group.dxc.includeFlag=-I
63
+ group.dxc.versionFlag=--version
64
+ group.dxc.groupName=NSC compilers
65
+
66
+ compiler.nsc_release_upstream.exe=@NSC_RELEASE_EXECUTABLE@.exe
67
+ compiler.nsc_release_upstream.name=NSC (Release)
68
+ compiler.nsc_release_upstream.notification=The NSC (Release) has been compiled from following <a href="https://github.com/Devsh-Graphics-Programming/Nabla/commit/@NABLA_SHA@" target="_blank" rel="noopener noreferrer">commit<sup><small class="fas fa-external-link-alt opens-new-window" title="Opens the commit in a new window"></small></sup></a>.
69
+
70
+ compiler.nsc_debug_upstream.exe=@NSC_DEBUG_EXECUTABLE@.exe
71
+ compiler.nsc_debug_upstream.name=NSC (Debug)
72
+ compiler.nsc_debug_upstream.notification=The NSC (Debug) has been compiled from following <a href="https://github.com/Devsh-Graphics-Programming/Nabla/commit/@NABLA_SHA@" target="_blank" rel="noopener noreferrer">commit<sup><small class="fas fa-external-link-alt opens-new-window" title="Opens the commit in a new window"></small></sup></a>.
73
+ ]=]
74
+ )
75
+
76
+ string (CONFIGURE "${CONFIG_CONTENT} " CONFIG_CONTENT @ONLY )
77
+ file (WRITE "${NBL_DOCKER_NSC_COMPILER_CONFIG_OUTPUT} " "${CONFIG_CONTENT} " )
78
+
79
+ set (NBL_DOCKER_CE_COMPOSE_BASE "${NBL_ROOT_PATH} /docker/compiler-explorer/compose.yml" )
80
+ set (NBL_DOCKER_CE_COMPOSE_TARGET "${GODBOLT_BINARY_DIRECTORY} /compose.yml" )
81
+
82
+ include (InstallRequiredSystemLibraries )
83
+
84
+ string (APPEND COMPOSE_CONTENT
85
+ [=[
86
+ services:
87
+ compiler-explorer-nsc:
88
+ extends:
89
+ file: @NBL_DOCKER_CE_COMPOSE_BASE@
90
+ service: compiler-explorer
91
+ container_name: dev.ce.nsc
92
+ entrypoint:
93
+ - "cmd"
94
+ - "/c"
95
+ - >
96
+ C:\\redist\\vc_redist.x64.exe /quiet /install
97
+ && copy C:\\nsc\\install\\hlsl.local.properties.cmake %GIT_GODBOLT_REPOSITORY_PATH%\\etc\\config\\hlsl.local.properties
98
+ && npm --prefix %GIT_GODBOLT_REPOSITORY_PATH% run dev -- --language hlsl
99
+ volumes:
100
+ - type: bind
101
+ source: .\install
102
+ target: @NBL_DOCKER_CT_NSC_VOLUME_TARGET@
103
+ - type: bind
104
+ source: @MSVC_REDIST_DIR@
105
+ target: C:\redist
106
+ read_only: true
107
+
108
+ networks:
109
+ docker_default:
110
+ external: true
111
+ ]=]
112
+ )
113
+
114
+ string (CONFIGURE "${COMPOSE_CONTENT} " COMPOSE_CONTENT @ONLY )
115
+ file (WRITE "${NBL_DOCKER_CE_COMPOSE_TARGET} " "${COMPOSE_CONTENT} " )
116
+
117
+ add_custom_target (run-compiler-explorer
118
+ COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue "Performing Pre-Test..."
119
+ COMMAND ctest -C $< CONFIG> --stop-on-failure
120
+ COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --yellow "Attempt to remove any remaining previous container..."
121
+ COMMAND docker compose -f "${NBL_DOCKER_CE_COMPOSE_TARGET} " rm -f
122
+ COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "Starting Compiler Explorer!"
123
+ COMMAND docker compose -f "${NBL_DOCKER_CE_COMPOSE_TARGET} " up --build compiler-explorer-nsc
124
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} "
125
+ )
126
+ add_dependencies (run-compiler-explorer nsc )
127
+ set_target_properties (run-compiler-explorer PROPERTIES FOLDER "Utilities" )
0 commit comments