if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(OS_TYPE_DESKTOP ON) set(LINUX ON) set(UNIX ON) EXECUTE_PROCESS( COMMAND cat /etc/os-release COMMAND grep VERSION_CODENAME COMMAND sed s/VERSION_CODENAME=// COMMAND tr -d '\n' OUTPUT_VARIABLE L_DEBIAN_OS_NAME) EXECUTE_PROCESS( COMMAND cat /etc/os-release COMMAND grep VERSION_ID COMMAND sed s/VERSION_ID=// COMMAND tr -d '\n' COMMAND sed s/\\x22// COMMAND sed s/\\x22// OUTPUT_VARIABLE L_DEBIAN_OS_VERSION) SET(DEBIAN_OS_NAME "${L_DEBIAN_OS_NAME}") SET(DEBIAN_OS_VERSION ${L_DEBIAN_OS_VERSION}) message("Debian OS ${DEBIAN_OS_VERSION} (${DEBIAN_OS_NAME})") # check if we're building natively on Android (TERMUX) EXECUTE_PROCESS( COMMAND uname -o COMMAND tr -d '\n' OUTPUT_VARIABLE OPERATING_SYSTEM) elseif(${CMAKE_SYSTEM_NAME} MATCHES "Android") message("ANDROID") set(ANDROID ON) set(UNIX ON) set(LINUX ON) set(OS_TYPE_MOBILE ON) message("ANDROID build") add_definitions(-DANDROID -DDAP_OS_ANDROID) elseif(${CMAKE_SYSTEM_NAME} MATCHES "Win") message("Win build") set(OS_TYPE_DESKTOP ON) endif() 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") 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) message(STATUS "Building for Windows") add_definitions("-DHAVE_PREAD") add_definitions("-DHAVE_MMAP") add_definitions("-DHAVE_STRNDUP") add_definitions ("-DUNDEBUG") add_definitions ("-DNDEBUG") add_definitions ("-DWIN32") add_definitions ("-D_WINDOWS") add_definitions ("-D__WINDOWS__") add_definitions ("-D_CRT_SECURE_NO_WARNINGS") add_definitions ("-DCURL_STATICLIB") add_definitions("-DHAVE_PREAD") add_definitions("-DHAVE_MMAP") add_definitions("-DHAVE_STRNDUP") add_definitions("-DNGHTTP2_STATICLIB") add_compile_definitions(WINVER=0x0600 _WIN32_WINNT=0x0600) add_definitions ("-DDAP_OS_WINDOWS") if(DAP_DEBUG) set(_CCOPT "-mconsole -static -Wall -std=gnu11 -Wextra -Wno-unused-function -Wno-implicit-fallthrough -Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -g3 -ggdb -fno-eliminate-unused-debug-symbols -pg") set(_LOPT "-mconsole -static -pg") else() set(_CCOPT "-static -std=gnu11 -Wall -Wextra -Wno-unused-function -Wno-implicit-fallthrough -Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -O3 -fno-ident -ffast-math -ftree-vectorize -mfpmath=sse -mmmx -msse2 -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all") endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT} ") set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${_LOPT}") include_directories(3rdparty/uthash/src/) include_directories(3rdparty/wepoll/) #include_directories(libdap-chain-net-srv-vpn/) endif()