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 ("" "" "" "" )
62
73enable_testing ()
84
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" )
119
1210add_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
1412 WORKING_DIRECTORY "${NBL_ROOT_PATH_BINARY} "
1513 COMMAND_EXPAND_LISTS
1614)
1715
1816add_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
2018 WORKING_DIRECTORY "${NBL_ROOT_PATH_BINARY} "
2119 COMMAND_EXPAND_LISTS
2220)
@@ -31,12 +29,99 @@ set(NBL_NSC_COMPILE_COMMAND
3129
3230add_test (NAME NBL_NSC_COMPILE_AT_EXE_CWD_TEST
3331 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} "
3533 COMMAND_EXPAND_LISTS
3634)
3735
3836add_test (NAME NBL_NSC_COMPILE_CUSTOM_CWD_TEST
3937 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 } "
4139 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=@[email protected] 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=@[email protected] 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