Skip to content

Commit 84efa72

Browse files
committed
fix an issue with NBL_NSC_INSTALL_EXECUTABLES_TEST, add create-production-compiler-explorer target, update docker/compiler-explorer submodule
1 parent ae281be commit 84efa72

File tree

2 files changed

+58
-9
lines changed

2 files changed

+58
-9
lines changed

tools/nsc/CMakeLists.txt

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,17 @@ set(NBL_NSC_PREINSTALL_DIRECTORY "${GODBOLT_BINARY_PRETEST_DIRECTORY}/.preinstal
99

1010
set(NBL_DOCKER_CT_NSC_VOLUME_SOURCE "${GODBOLT_BINARY_DIRECTORY}/install")
1111

12+
set(NBL_DOCKER_INSTALL_BAT_FILENAME install-production.bat)
13+
set(NBL_DOCKER_CT_NSC_INSTALL_BAT "${NBL_DOCKER_CT_NSC_VOLUME_SOURCE}/${NBL_DOCKER_INSTALL_BAT_FILENAME}")
14+
1215
add_test(NAME NBL_NSC_INSTALL_RUNTIMES_TEST
1316
COMMAND "${CMAKE_COMMAND}" --install . --config $<CONFIG> --prefix "${NBL_NSC_PREINSTALL_DIRECTORY}" --component Runtimes
1417
WORKING_DIRECTORY "${NBL_ROOT_PATH_BINARY}"
1518
COMMAND_EXPAND_LISTS
1619
)
1720

1821
add_test(NAME NBL_NSC_INSTALL_EXECUTABLES_TEST
19-
COMMAND "${CMAKE_COMMAND}" --install . --config $<CONFIG> --prefix "${NBL_NSC_PREINSTALL_DIRECTORY}" --component Executables
20-
WORKING_DIRECTORY "${NBL_ROOT_PATH_BINARY}"
22+
COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}" --config $<CONFIG> --prefix "${NBL_NSC_PREINSTALL_DIRECTORY}" --component Executables
2123
COMMAND_EXPAND_LISTS
2224
)
2325

@@ -122,7 +124,7 @@ set(NBL_CE_GENERATE_CONFIG_COMMAND
122124

123125
set(NBL_DOCKER_CE_COMPOSE_BASE "${NBL_ROOT_PATH}/docker/compiler-explorer/compose.yml")
124126
cmake_path(NATIVE_PATH NBL_DOCKER_CE_COMPOSE_BASE NORMALIZE NBL_DOCKER_CE_COMPOSE_BASE)
125-
set(NBL_DOCKER_CE_COMPOSE_TARGET "${GODBOLT_BINARY_DIRECTORY}/compose.yml")
127+
set(NBL_DOCKER_CE_COMPOSE_TARGET "${GODBOLT_BINARY_DIRECTORY}/.dev-compose.yml")
126128

127129
include(InstallRequiredSystemLibraries)
128130

@@ -148,9 +150,9 @@ find_file(UCRTBASED_DLL_PATH
148150

149151
set(BASE_IMAGE mcr.microsoft.com/windows/servercore:ltsc2022-amd64) # NOTE: HARDCODED CURRENTLY
150152

151-
string(TOLOWER "dcr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/package/vulkan:latest" DOCKER_VULKAN_TAG)
152-
string(TOLOWER "dcr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/toolset/redist/${CMAKE_CXX_COMPILER_ID}/crt:latest" DOCKER_CRT_TAG)
153-
string(TOLOWER "dcr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/build/${CMAKE_CXX_COMPILER_ID}/devel-compiler-explorer-nsc:latest" DOCKER_DEVEL_TAG)
153+
string(TOLOWER "dr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/package/vulkan:latest" DOCKER_VULKAN_TAG)
154+
string(TOLOWER "dr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/toolset/redist/${CMAKE_CXX_COMPILER_ID}/crt:latest" DOCKER_CRT_TAG)
155+
string(TOLOWER "dr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/build/${CMAKE_CXX_COMPILER_ID}/devel-compiler-explorer-nsc:latest" DOCKER_DEVEL_TAG)
154156

155157
cmake_path(NATIVE_PATH MSVC_REDIST_DIR NORMALIZE TOOLSET_REDIST_PATH)
156158
get_filename_component(REDIST_CRT_TOOLSET_VERSION "${TOOLSET_REDIST_PATH}" NAME)
@@ -268,7 +270,7 @@ ON
268270
)
269271

270272
# Devel, combined
271-
set(BASE_IMAGE dcr.devsh.eu/compiler-explorer)
273+
set(BASE_IMAGE dr.devsh.eu/compiler-explorer/windows)
272274

273275
# NOTE to self: could be all done with single docker file & compose file but buildkit works bad with windows driver, yet need to wait for stuff to be implemented
274276
set(OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/docker/devel")
@@ -304,7 +306,8 @@ set(NABLA_DEV_ENV_CT_NAME dev.nabla.env.${CMAKE_SYSTEM_NAME}.${CMAKE_CXX_COMPILE
304306
string(TOLOWER "${NABLA_DEV_ENV_CT_NAME}" NABLA_DEV_ENV_CT_NAME)
305307

306308
set(COMPOSE_NSC_DEV_SERVICE compiler-explorer-nsc-dev)
307-
string(TOLOWER "dcr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/build/${CMAKE_CXX_COMPILER_ID}/compiler-explorer-nsc:latest" COMPOSE_NSC_DEV_IMAGE)
309+
string(TOLOWER "dr.devsh.eu/nabla/cmake-host-dev-env/${CMAKE_SYSTEM_NAME}/build/${CMAKE_CXX_COMPILER_ID}/compiler-explorer-nsc:latest" COMPOSE_NSC_DEV_IMAGE)
310+
string(TOLOWER "dr.devsh.eu/compiler-explorer/production/windows/nsc:latest" COMPOSE_NSC_PRODUCTION_IMAGE)
308311

309312
string(APPEND COMPOSE_CONTENT
310313
[=[
@@ -346,6 +349,38 @@ make_directory("${GODBOLT_BINARY_DIRECTORY}/.ctx")
346349
execute_process(COMMAND "${DOCKER_EXE}" compose -f "${NBL_DOCKER_CE_COMPOSE_BASE}" build)
347350
execute_process(COMMAND "${DOCKER_EXE}" compose -f "${NBL_DOCKER_CE_COMPOSE_TARGET}" build)
348351

352+
string(APPEND BAT_PRODUCTION_INSTALL
353+
[=[
354+
@echo off
355+
setlocal
356+
357+
set BASE_PATH=C:\
358+
359+
xcopy "%BASE_PATH%target" "%BASE_PATH%nsc\install" /s /e /h /i /y /f
360+
if %ERRORLEVEL% neq 0 (
361+
echo [ERROR] Failed to copy C:\target to C:\nsc\install
362+
exit /b %ERRORLEVEL%
363+
)
364+
365+
if "%GIT_GODBOLT_REPOSITORY_PATH%"=="" (
366+
echo [ERROR] Environment variable GIT_GODBOLT_REPOSITORY_PATH is not set!
367+
exit /b 1
368+
)
369+
370+
copy "%BASE_PATH%nsc\install\hlsl.local.properties.cmake" "%GIT_GODBOLT_REPOSITORY_PATH%\etc\config\hlsl.local.properties"
371+
if %ERRORLEVEL% neq 0 (
372+
echo [ERROR] Failed to copy HLSL properties file
373+
exit /b %ERRORLEVEL%
374+
)
375+
376+
echo [SUCCESS] All production files copied successfully.
377+
exit /b 0
378+
]=]
379+
)
380+
381+
string(CONFIGURE "${BAT_PRODUCTION_INSTALL}" BAT_PRODUCTION_INSTALL @ONLY)
382+
file(WRITE "${NBL_DOCKER_CT_NSC_INSTALL_BAT}" "${BAT_PRODUCTION_INSTALL}")
383+
349384
add_custom_target(run-compiler-explorer
350385
COMMAND "${CMAKE_COMMAND}" -E cmake_echo_color --blue "Performing Pre-Test..."
351386
COMMAND "${CTEST_EXE}" -C $<CONFIG> --stop-on-failure
@@ -369,8 +404,22 @@ add_custom_target(is-compiler-explorer-running
369404
USES_TERMINAL
370405
)
371406

407+
set(NBL_DOCKER_TMP_PRODUCTION_TARGET "C:\\target")
408+
409+
add_custom_target(create-production-compiler-explorer
410+
COMMAND "${DOCKER_EXE}" run -dit -v "${NBL_DOCKER_CT_NSC_VOLUME_SOURCE}:${NBL_DOCKER_TMP_PRODUCTION_TARGET}" --name production-ce-orphan --entrypoint "cmd" "${COMPOSE_NSC_DEV_IMAGE}"
411+
COMMAND "${DOCKER_EXE}" exec production-ce-orphan "${NBL_DOCKER_TMP_PRODUCTION_TARGET}\\${NBL_DOCKER_INSTALL_BAT_FILENAME}"
412+
# TODO: add final test -> run in production mode (npm start) + execute basic hlsl file compile checks for collected nsc compilers, if all good then commit
413+
COMMAND "${DOCKER_EXE}" stop production-ce-orphan
414+
COMMAND "${DOCKER_EXE}" commit production-ce-orphan "${COMPOSE_NSC_PRODUCTION_IMAGE}"
415+
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
416+
VERBATIM
417+
USES_TERMINAL
418+
)
419+
372420
add_dependencies(run-compiler-explorer nsc)
373421
set_target_properties(run-compiler-explorer PROPERTIES FOLDER "Godbolt")
374422
set_target_properties(is-compiler-explorer-running PROPERTIES FOLDER "Godbolt")
423+
set_target_properties(create-production-compiler-explorer PROPERTIES FOLDER "Godbolt")
375424

376425
endif()

0 commit comments

Comments
 (0)