diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index de40a0f..0adbb46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,10 +13,20 @@ endif() find_package(ZLIB REQUIRED) + +if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") + set(CC4GROUP_PLATFORM "windows") +else() + set(CC4GROUP_PLATFORM "unix") +endif() + +string(TOUPPER ${CC4GROUP_PLATFORM} CC4GROUP_PLATFORM_DEF) + set(cc4group_SRC src/cc4group.c src/c4groupheader.c src/c4groupentrycore.c + src/platform/${CC4GROUP_PLATFORM}.c ) set(cppc4group_SRC @@ -26,6 +36,7 @@ set(cppc4group_SRC add_library(cc4group_objs OBJECT ${cc4group_SRC}) set_property(TARGET cc4group_objs PROPERTY POSITION_INDEPENDENT_CODE ON) target_include_directories(cc4group_objs PRIVATE ZLIB::ZLIB) +target_compile_definitions(cc4group_objs PRIVATE CC4GROUP_PLATFORM_${CC4GROUP_PLATFORM_DEF}) add_library(cc4group STATIC $<TARGET_OBJECTS:cc4group_objs>) target_link_libraries(cc4group PRIVATE ZLIB::ZLIB) @@ -45,7 +56,6 @@ function(example name) endfunction() example(unc4group) -example(c4cat) example(c4copy) example(c4info) example(c4ls) @@ -53,5 +63,11 @@ example(c4touch) example(c4rm) example(c4mkdir) -add_executable(c4cat_dyn examples/c4cat_dyn.c) -target_link_libraries(c4cat_dyn PRIVATE -ldl) +add_executable(c4cat examples/c4cat.c src/platform/${CC4GROUP_PLATFORM}.c) +target_link_libraries(c4cat PRIVATE cc4group) +target_compile_definitions(c4cat PRIVATE CC4GROUP_PLATFORM_${CC4GROUP_PLATFORM_DEF}) + +if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows") + add_executable(c4cat_dyn examples/c4cat_dyn.c) + target_link_libraries(c4cat_dyn PRIVATE -ldl) +endif() |
