summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2019-03-08 00:22:20 +0100
committerMarkus Mittendrein <git@maxmitti.tk>2019-03-08 00:25:57 +0100
commit31693290ed717d700480774f4f6b49dbe9b9b704 (patch)
tree4cbbeb7ea82a950ea3c9ebadea6276d750482c4b /CMakeLists.txt
parent841ee0e92516827e6dd6f2101903b5ec1cc85fb4 (diff)
downloadcc4group-31693290ed717d700480774f4f6b49dbe9b9b704.tar.gz
cc4group-31693290ed717d700480774f4f6b49dbe9b9b704.zip
Windows support (hopefully!)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt22
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()