cmake_minimum_required(VERSION 2.8.9) project (rapidmix) # The version number. set (rapidmix_VERSION_MAJOR 2) set (rapidmix_VERSION_MINOR 2) include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif() # Compiler Flags set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -fPIC") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DJSON_DEBUG -fPIC") if (NOT CMAKE_BUILD_TYPE) message(STATUS "No build type selected, default to Release") set(CMAKE_BUILD_TYPE "Release") endif() # Main lib include_directories(${PROJECT_SOURCE_DIR}/src) # RAPID-MIX dependencies include_directories(dependencies/RapidLib/src) include_directories(dependencies/xmm/src) include_directories(dependencies/GVF) include_directories(dependencies/Maximilian) include_directories(dependencies/Maximilian/libs) include_directories(dependencies/pipo/sdk/src) include_directories(dependencies/pipo/sdk/src/host) include_directories(dependencies/pipo/modules) include_directories(dependencies/pipo/modules/collection) include_directories(dependencies/pipo/modules/bayesfilter/src) include_directories(dependencies/pipo/modules/finitedifferences) include_directories(dependencies/pipo/modules/rta/src) include_directories(dependencies/pipo/modules/rta/src/util) include_directories(dependencies/pipo/modules/rta/src/statistics) include_directories(dependencies/pipo/modules/rta/src/signal) include_directories(dependencies/pipo/modules/rta/bindings/lib) # Third party dependencies include_directories(dependencies/third_party/json) # Source Files file(GLOB_RECURSE RAPIDMIX_SRC "${PROJECT_SOURCE_DIR}/src/*.cpp") file(GLOB GVF_SRC "${PROJECT_SOURCE_DIR}/dependencies/GVF/GVF.cpp") # Maximilian file(GLOB MAXI_SRC "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/maximilian.cpp") file(GLOB MAXI_SRC ${MAXI_SRC} "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/libs/maxiFFT.cpp") file(GLOB MAXI_SRC ${MAXI_SRC} "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/libs/fft.cpp") #PiPo file(GLOB_RECURSE PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/sdk/src/*") file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/bayesfilter/src/*") file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/collection/*") file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/finitedifferences/*") file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/util/*") file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/signal/*") file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/statistics/*") list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/signal/rta_onepole.c") list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/signal/rta_resample.c") list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/statistics/rta_cca.c") # RapidLib file(GLOB RAPIDLIB_SRC "${PROJECT_SOURCE_DIR}/dependencies/RapidLib/src/*.cpp") file(GLOB RAPIDLIB_DEP "${PROJECT_SOURCE_DIR}/dependencies/RapidLib/dependencies/libsvm/libsvm.cpp") # XMM file(GLOB_RECURSE XMM_SRC "${PROJECT_SOURCE_DIR}/dependencies/xmm/src/*") file(GLOB JSON_SRC "${PROJECT_SOURCE_DIR}/dependencies/third_party/jsoncpp.cpp") # Set the source for the main library, using the groups defined above set(RAPIDMIX_FULL_SRC ${RAPIDMIX_SRC} ${GVF_SRC} ${MAXI_SRC} ${PIPO_SRC} ${RAPIDLIB_SRC} ${RAPIDLIB_DEP} ${XMM_SRC} ${JSON_SRC} ) add_library(RAPID-MIX_API SHARED ${RAPIDMIX_FULL_SRC}) add_executable(rapidmixTest tests/rapidMixTest.cpp ) add_executable(helloRapidMix ${PROJECT_SOURCE_DIR}/examples/HelloRapidMix/HelloRapidMix/main.cpp) if (APPLE) find_library(ACCELERATE Accelerate) if (NOT ACCELERATE) message(FATAL_ERROR "Accelearate not found") endif() target_link_libraries(RAPID-MIX_API ${ACCELERATE}) endif() target_link_libraries(rapidmixTest RAPID-MIX_API) target_link_libraries(helloRapidMix RAPID-MIX_API)