odyssey/third_party/machinarium/CMakeLists.txt

69 lines
2.1 KiB
CMake

cmake_minimum_required(VERSION 2.8)
project(machinarium C)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/cmake)
find_package(Threads REQUIRED)
set(CMAKE_THREAD_PREFER_PTHREAD true)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_BUILD_TYPE "Debug")
endif()
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_C_FLAGS "-std=gnu99 -fPIC -g -O2 -D_GNU_SOURCE -pthread")
elseif("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(CMAKE_C_FLAGS "-std=gnu99 -fPIC -g -O0 -D_GNU_SOURCE -pthread")
endif()
include_directories("${PROJECT_SOURCE_DIR}/sources")
include_directories("${PROJECT_BINARY_DIR}/sources")
option(BUILD_SHARED "Enable SHARED" OFF)
option(BUILD_VALGRIND "Enable VALGRIND" ON)
set(mm_libraries "")
# valgrind
if (BUILD_VALGRIND)
find_path(VALGRIND_INCLUDE_PATH "valgrind/valgrind.h"
"/usr/include"
"/usr/local/include")
if (${VALGRIND_INCLUDE_PATH} STREQUAL "VALGRIND_INCLUDE_PATH-NOTFOUND")
else()
set(HAVE_VALGRIND 1)
endif()
endif()
# use BoringSSL or OpenSSL
option(USE_BORINGSSL "Use BoringSSL" OFF)
if (USE_BORINGSSL)
find_package(BoringSSL REQUIRED)
if (BORINGSSL_FOUND)
set(mm_libraries "${mm_libraries} ${BORINGSSL_LIBRARIES}")
include_directories(${BORINGSSL_INCLUDE_DIR})
endif()
else()
find_package(OpenSSL REQUIRED)
set(mm_libraries "${mm_libraries} ${OPENSSL_LIBRARIES}")
include_directories(${OPENSSL_INCLUDE_DIR})
endif()
add_subdirectory(sources)
message(STATUS "")
message(STATUS "Machinarium: Cooperative multitasking framework.")
message(STATUS "")
message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
message(STATUS "BUILD_SHARED: ${BUILD_SHARED}")
message(STATUS "BUILD_VALGRIND: ${BUILD_VALGRIND}")
message(STATUS "USE_BORINGSSL: ${USE_BORINGSSL}")
message(STATUS "BORINGSSL_ROOT_DIR: ${BORINGSSL_ROOT_DIR}")
message(STATUS "BORINGSSL_INCLUDE_DIR: ${BORINGSSL_INCLUDE_DIR}")
message(STATUS "OPENSSL_VERSION: ${OPENSSL_VERSION}")
message(STATUS "OPENSSL_ROOT_DIR: ${OPENSSL_ROOT_DIR}")
message(STATUS "OPENSSL_INCLUDE_DIR: ${OPENSSL_INCLUDE_DIR}")
message(STATUS "")