diff options
Diffstat (limited to 'cmd/srv9p/CMakeLists.txt')
-rw-r--r-- | cmd/srv9p/CMakeLists.txt | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/cmd/srv9p/CMakeLists.txt b/cmd/srv9p/CMakeLists.txt index 8aadb28..e9d4097 100644 --- a/cmd/srv9p/CMakeLists.txt +++ b/cmd/srv9p/CMakeLists.txt @@ -3,10 +3,16 @@ # Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com> # SPDX-Licence-Identifier: AGPL-3.0-or-later +set(static_srcs + static/README.md + static/Documentation/x +) + add_executable(srv9p main.c - static.c + static9p.c ) +target_include_directories(srv9p PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(srv9p PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/config) target_link_libraries(srv9p libcr @@ -14,3 +20,32 @@ target_link_libraries(srv9p libnetio lib9p ) + +set(static_objs) +foreach(static_src ${static_srcs}) + add_custom_command( + OUTPUT "${static_src}.obj" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND dirname -- ${CMAKE_CURRENT_BINARY_DIR}/${static_src}.obj | xargs mkdir -p -- + COMMAND ${CMAKE_LINKER} -r -b binary -o ${CMAKE_CURRENT_BINARY_DIR}/${static_src}.obj ${static_src} + DEPENDS "${static_src}" + ) + list(APPEND static_objs "${static_src}.obj") +endforeach() + +set_source_files_properties(${static_objs} PROPERTIES + EXTERNAL_OBJECT true + GENERATED true +) + +set_source_files_properties(static.h PROPERTIES + GENERATED true +) + +add_custom_command( + OUTPUT static.h + DEPENDS ${static_objs} static.h.gen + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/static.h.gen ${static_objs} >static.h +) + +target_sources(srv9p PRIVATE ${static_objs} static.h) |