11cmake_minimum_required (VERSION 3.10)
2- project (kanzi)
2+ project (kanzi LANGUAGES C CXX )
33
44# Set C++ standard
55set (CMAKE_CXX_STANDARD 17)
66#set(CMAKE_CXX_STANDARD_REQUIRED True)
77#set(CMAKE_CXX_COMPILER "clang++")
88
9+ # Set C standard (for TestAPI.c)
10+ set (CMAKE_C_STANDARD 11)
11+ #set(CMAKE_C_STANDARD_REQUIRED True)
12+ #set(CMAKE_C_COMPILER "clang")
13+
914if (CONCURRENCY_DISABLED)
1015 add_definitions (-DCONCURRENCY_DISABLED)
1116endif ()
1217
13- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -O3 -fomit-frame-pointer -fPIC -DNDEBUG -pedantic -march=native -fno-rtti" )
18+ set (COMMON_FLAGS "-Wall -Wextra -O3 -fomit-frame-pointer -fPIC -DNDEBUG -pedantic -march=native -fno-rtti" )
19+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} " )
20+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS} " )
21+
1422
1523if (MSVC )
1624 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
@@ -95,7 +103,7 @@ set_target_properties(libkanzi_shared PROPERTIES OUTPUT_NAME "kanzi")
95103#add_library(libkanzi_comp_shared SHARED ${LIB_COMP_SOURCES})
96104#add_library(libkanzi_decomp_shared SHARED ${LIB_DECOMP_SOURCES})
97105
98- # Test executables
106+ # Executable target for C++
99107add_executable (testBWT test /TestBWT.cpp)
100108target_link_libraries (testBWT libkanzi)
101109
@@ -111,8 +119,11 @@ target_link_libraries(testDefaultBitStream libkanzi)
111119add_executable (testCompressedStream test /TestCompressedStream.cpp)
112120target_link_libraries (testCompressedStream libkanzi)
113121
114- add_executable (testAPI test /TestAPI.cpp)
122+ # Executable target for C API test (TestAPI.c)
123+ add_executable (testAPI test /TestAPI.c)
115124target_link_libraries (testAPI libkanzi)
125+ # IMPORTANT: Force use of C++ Linker because we link against C++ lib 'archon_static'
126+ set_target_properties (testAPI PROPERTIES LINKER_LANGUAGE CXX)
116127
117128# Main executable
118129
0 commit comments