summaryrefslogtreecommitdiff
path: root/cmd/srv9p/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/srv9p/CMakeLists.txt')
-rw-r--r--cmd/srv9p/CMakeLists.txt37
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)