PROJECT(openvibe-toolkit) OV_ADD_THIS_TO_PROJECT_LIST() SET(PROJECT_VERSION_MAJOR ${OV_GLOBAL_VERSION_MAJOR}) SET(PROJECT_VERSION_MINOR ${OV_GLOBAL_VERSION_MINOR}) SET(PROJECT_VERSION_PATCH ${OV_GLOBAL_VERSION_PATCH}) SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) # Command to generate cpp compliant stimulation files from text file # Creating output directories is mandatory as it is not handled by ADD_CUSTOM_COMMAND FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/toolkit) FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/toolkit/ovtk_stimulations.h ${CMAKE_CURRENT_BINARY_DIR}/src/ovtk_stimulations.cpp DEPENDS openvibe-stimulation-generator ${CMAKE_CURRENT_SOURCE_DIR}/share/stimulation_list.txt COMMAND openvibe-stimulation-generator --cpp ${CMAKE_CURRENT_SOURCE_DIR}/share/stimulation_list.txt ${CMAKE_CURRENT_BINARY_DIR}/include/toolkit/ovtk_stimulations.h ${CMAKE_CURRENT_BINARY_DIR}/src/ovtk_stimulations.cpp COMMENT "Generating stimulation sources..." ) # ADD_CUSTOM_TARGET will automatically trigger the command defined above # as it depends on its outputs ADD_CUSTOM_TARGET(openvibe-generate-stimulation-file DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/include/toolkit/ovtk_stimulations.h ${CMAKE_CURRENT_BINARY_DIR}/src/ovtk_stimulations.cpp) FILE(GLOB_RECURSE SRC_FILES src/*.cpp src/*.h src/*.inl src/*.hpp include/*.h) INCLUDE("FindSourceRCProperties") INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/algorithms/scenario-io) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/algorithms/classification) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/deprecated/writer) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/deprecated/reader) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/training) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/tools) # add binary directory to includes as it contains generated stimulation header INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include/) ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRC_FILES} ${CMAKE_CURRENT_BINARY_DIR}/include/toolkit/ovtk_stimulations.h ${CMAKE_CURRENT_BINARY_DIR}/src/ovtk_stimulations.cpp ) ADD_DEPENDENCIES(${PROJECT_NAME} openvibe-generate-stimulation-file) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} FOLDER ${KERNEL_FOLDER} COMPILE_FLAGS "-DOVTK_Exports -DOVTK_Shared") # --------------------------------- INCLUDE("FindOpenViBE") INCLUDE("FindOpenViBECommon") INCLUDE("FindOpenViBEModuleEBML") INCLUDE("FindOpenViBEModuleXML") INCLUDE("FindOpenViBEModuleFS") INCLUDE("FindThirdPartyBoost_FileSystem") # --------------------------------- # Target macros # Defines target operating system, architecture and compiler # --------------------------------- SET_BUILD_PLATFORM() # ----------------------------- # Install files # ----------------------------- INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${DIST_BINDIR} LIBRARY DESTINATION ${DIST_LIBDIR} ARCHIVE DESTINATION ${DIST_LIBDIR}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION ${DIST_INCLUDEDIR} FILES_MATCHING PATTERN "*.h") INSTALL(DIRECTORY share/ DESTINATION ${DIST_DATADIR}/openvibe/toolkit PATTERN "*-base" EXCLUDE)