diff --git a/CMakeLists.txt b/CMakeLists.txt index 34f2777c688b4f823c8b09476b5a0b1f832733bd..6c3e93b611a68fdb4523d3e2e2d021c5026a984d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,10 +2,60 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 2.8) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "1.1-0") +set(CELLFRAME_SDK_NATIVE_VERSION "1.1-1") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") +if((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (DAP_DEBUG)) + message("Debug build") + SET(DAP_DEBUG ON) +else() + message("Release build") + SET(DAP_RELEASE ON) +endif() + +if(CMAKE_SIZEOF_VOID_P EQUAL "8") + set(DEFAULT_BUILD_64 ON) +else() + set(DEFAULT_BUILD_64 OFF) +endif() +option(BUILD_64 "Build for 64-bit? 'OFF' builds for 32-bit." ${DEFAULT_BUILD_64}) + +if(BUILD_64) + set(ARCH_WIDTH "64") +else() + set(ARCH_WIDTH "32") +endif() +message(STATUS "Building for a ${ARCH_WIDTH}-bit system") + +if(UNIX) + add_definitions ("-DDAP_OS_LINUX -DDAP_OS_UNIX") + # add_definitions ("-DDAP_LOG_MT") + if(DAP_DEBUG) + set(_CCOPT "-DDAP_DEBUG -Wall -Wno-unused-function -Wno-implicit-fallthrough -Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -pg -g3 -ggdb -fno-eliminate-unused-debug-symbols") + set(_LOPT "-pg") + SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg") + else() + set(_CCOPT "-Wno-unused-function -Wno-implicit-fallthrough -Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -O3 -fPIC -fno-ident -ffast-math -ftree-vectorize -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all -std=gnu11") + endif() + + if (ANDROID) + set(_CCOPT "${_CCOPT} -fforce-enable-int128 -std=gnu11") + add_definitions ("-DDAP_OS_ANDROID -DDAP_OS_UNIX") + endif() + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") + set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${_LOPT}") + + if (ANDROID) + add_subdirectory(lib/json-c) + add_subdirectory(lib/sqlite3) + #add_subdirectory(lib/libev) + include_directories(lib/) + else() + endif(ANDROID) +endif() + if(WIN32) add_definitions("-DHAVE_PREAD") add_definitions("-DHAVE_MMAP")