summaryrefslogtreecommitdiffstats
path: root/cmake/dotnet.cmake
diff options
context:
space:
mode:
authorBernhard Guillon <Bernhard.Guillon@begu.org>2026-06-30 21:32:01 +0200
committerBernhard Guillon <Bernhard.Guillon@begu.org>2026-06-30 21:32:01 +0200
commit793748246133423bab93258375a45f3c0ad363b2 (patch)
treeab437e35e0713ab29a8252b3f5c5463b389cf2d9 /cmake/dotnet.cmake
parent4515ab7b7bdc356eb8e95ba9d3f16b43dd80f39c (diff)
downloadcsharp-cmake-793748246133423bab93258375a45f3c0ad363b2.tar.gz
csharp-cmake-793748246133423bab93258375a45f3c0ad363b2.zip
Use cmake/runtimeconfig.json.in template with configure_file for executables
Diffstat (limited to 'cmake/dotnet.cmake')
-rw-r--r--cmake/dotnet.cmake12
1 files changed, 8 insertions, 4 deletions
diff --git a/cmake/dotnet.cmake b/cmake/dotnet.cmake
index 6fca7c4..4c5c4ca 100644
--- a/cmake/dotnet.cmake
+++ b/cmake/dotnet.cmake
@@ -58,12 +58,19 @@ function(add_dotnet_executable NAME)
endif()
set(OUTPUT_FILE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${NAME}.dll)
+ set(RUNTIMECONFIG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${NAME}.runtimeconfig.json)
set(CSC_FLAGS -target:exe -main:${arg_MAIN})
foreach(ref IN LISTS arg_REFERENCES)
list(APPEND CSC_FLAGS "-reference:${ref}")
endforeach()
+ configure_file(
+ ${CMAKE_SOURCE_DIR}/cmake/runtimeconfig.json.in
+ ${RUNTIMECONFIG}
+ COPYONLY
+ )
+
add_custom_command(
OUTPUT ${OUTPUT_FILE}
COMMAND dotnet ${CSC_DLL}
@@ -75,10 +82,7 @@ function(add_dotnet_executable NAME)
-reference:System.Runtime.dll
-reference:System.Console.dll
${arg_SOURCES}
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${CMAKE_SOURCE_DIR}/HelloCMake.runtimeconfig.json
- ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${NAME}.runtimeconfig.json
- DEPENDS ${arg_SOURCES}
+ DEPENDS ${arg_SOURCES} ${RUNTIMECONFIG}
COMMENT "Compiling ${NAME} with Roslyn csc..."
COMMAND_EXPAND_LISTS
)