summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-06-30 19:19:45 +0900
committertanaka takashi <isazaka@gmail.com>2026-06-30 19:19:45 +0900
commitac4dd6ad07d2d9048c3177dc4f3df42146268233 (patch)
treec48c87bdcae3d742fd439d33e2fa52073222b0eb
parent05c8e0a31a0d4192c590e833b24393208e1c751f (diff)
CMake設定変更
-rw-r--r--src/CMakeLists.txt28
-rw-r--r--tests/CMakeLists.txt2
2 files changed, 19 insertions, 11 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e441c55..66ef748 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,14 +1,22 @@
-add_library(tiny-convmem-base STATIC base/allocator.c)
-target_include_directories(tiny-convmem-base PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
-target_compile_features(tiny-convmem-base PUBLIC c_std_17)
+# Interface source targets keep the shared grouping used by the tests while
+# compiling the implementation directly into each consuming executable. This
+# avoids producing intermediate base/sys .lib archives with Visual Studio.
+add_library(tiny-convmem-base INTERFACE)
+target_sources(tiny-convmem-base INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/base/allocator.c")
+target_include_directories(tiny-convmem-base INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
+target_compile_features(tiny-convmem-base INTERFACE c_std_17)
-add_library(tiny-convmem-sys STATIC sys/system.c sys/encoding.c)
-target_include_directories(tiny-convmem-sys PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
-target_compile_features(tiny-convmem-sys PUBLIC c_std_17)
-target_link_libraries(tiny-convmem-sys PUBLIC tiny-convmem-base)
+add_library(tiny-convmem-sys INTERFACE)
+target_sources(tiny-convmem-sys INTERFACE
+ "${CMAKE_CURRENT_SOURCE_DIR}/sys/system.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/sys/encoding.c"
+)
+target_include_directories(tiny-convmem-sys INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
+target_compile_features(tiny-convmem-sys INTERFACE c_std_17)
+target_link_libraries(tiny-convmem-sys INTERFACE tiny-convmem-base)
if(WIN32)
- target_link_libraries(tiny-convmem-sys PRIVATE bcrypt shell32)
+ target_link_libraries(tiny-convmem-sys INTERFACE bcrypt shell32)
endif()
add_executable(tiny-convmem-mcp
@@ -38,7 +46,7 @@ target_link_libraries(tiny-convmem-mcp PRIVATE mcpc::mcpc tiny-convmem-sys)
target_compile_features(tiny-convmem-mcp PRIVATE c_std_17)
if(MSVC)
- target_compile_options(tiny-convmem-base PRIVATE /utf-8 /W4)
- target_compile_options(tiny-convmem-sys PRIVATE /utf-8 /W4)
+ target_compile_options(tiny-convmem-base INTERFACE /utf-8 /W4)
+ target_compile_options(tiny-convmem-sys INTERFACE /utf-8 /W4)
target_compile_options(tiny-convmem-mcp PRIVATE /utf-8 /W4)
endif()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index fd9ac9e..9ce564e 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -50,7 +50,7 @@ target_include_directories(tiny-convmem-boundary-test PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}"
)
target_compile_features(tiny-convmem-boundary-test PRIVATE c_std_17)
-target_link_libraries(tiny-convmem-boundary-test PRIVATE tiny-convmem-sys tiny-convmem-base)
+target_link_libraries(tiny-convmem-boundary-test PRIVATE tiny-convmem-sys)
if(MSVC)
target_compile_options(tiny-convmem-boundary-test PRIVATE /utf-8 /W4)
endif()