aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-08 21:32:00 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-08 21:34:37 +0800
commit0b0c32a1d688389c36f1847edf77af1fd7a2f9d7 (patch)
tree904d65208931bc2b6930ea4c7406192ad10d98c0 /CMakeLists.txt
parent593b658eb1491d4b3103971aba6592aff2765f0e (diff)
downloadcru-0b0c32a1d688389c36f1847edf77af1fd7a2f9d7.tar.gz
cru-0b0c32a1d688389c36f1847edf77af1fd7a2f9d7.tar.bz2
cru-0b0c32a1d688389c36f1847edf77af1fd7a2f9d7.zip
Fix static lib build on win.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt17
1 files changed, 17 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 281de58b..3b26a29d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,3 +40,20 @@ endif()
set(CLANGD_TEMPLATE ${PROJECT_SOURCE_DIR}/scripts/clangd.in)
configure_file(${CLANGD_TEMPLATE} ${CLANGD_FILE})
+function(cru_process_dir dir)
+ get_property(targets DIRECTORY "${dir}" PROPERTY BUILDSYSTEM_TARGETS)
+ foreach(target ${targets})
+ if(WIN32)
+ get_property(target_type TARGET "${target}" PROPERTY TYPE)
+ if("${target_type}" STREQUAL "SHARED_LIBRARY")
+ target_compile_definitions("${target}" PRIVATE CRU_IS_DLL=1)
+ endif()
+ endif()
+ endforeach()
+ get_property(subdirectories DIRECTORY "${dir}" PROPERTY SUBDIRECTORIES)
+ foreach(subdir ${subdirectories})
+ cru_process_dir("${subdir}")
+ endforeach()
+endfunction()
+
+cru_process_dir(".")