59 lines
2.0 KiB
CMake
59 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.9.1)
|
|
project(flippr-driver)
|
|
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # enable C++11 standard
|
|
|
|
add_definitions(-lcrypt)
|
|
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
|
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
|
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
|
|
set(SOURCE_DIR ../src)
|
|
set(LIB_DIR ${SOURCE_DIR}/lib)
|
|
|
|
set(EASYLOGGING_INCLUDE_DIR ${LIB_DIR}/easylogging)
|
|
add_library(Easylogging STATIC ${EASYLOGGING_INCLUDE_DIR}/easylogging++.cc)
|
|
include_directories(${EASYLOGGING_INCLUDE_DIR})
|
|
|
|
add_library(libwiringPi SHARED IMPORTED )
|
|
set_property(TARGET libwiringPi PROPERTY IMPORTED_LOCATION ${LIB_DIR}/libwiringPi.so.2.44)
|
|
#set_property(TARGET libwiringPi PROPERTY INTERFACE_INCLUDE_DIRECTORIES ../src/lib/wiringPi)
|
|
|
|
find_package(Threads REQUIRED)
|
|
find_package(Boost COMPONENTS system thread timer chrono REQUIRED)
|
|
|
|
include_directories(${SOURCE_DIR}/input)
|
|
include_directories(${SOURCE_DIR}/output)
|
|
include_directories(${SOURCE_DIR}/lib)
|
|
include_directories(${SOURCE_DIR}/utilities)
|
|
include_directories(${Boost_INCLUDE_DIRS})
|
|
|
|
file(GLOB SOURCES ${SOURCE_DIR}/*/*.cpp)
|
|
|
|
add_library(flippr_driver STATIC ${SOURCES})
|
|
|
|
target_link_libraries(flippr_driver ${CMAKE_THREAD_LIBS_INIT})
|
|
target_link_libraries(flippr_driver ${Boost_LIBRARIES})
|
|
target_link_libraries(flippr_driver libwiringPi)
|
|
target_link_libraries(flippr_driver Easylogging)
|
|
|
|
enable_testing(TRUE)
|
|
|
|
#Prepare "Catch" library for other executables
|
|
set(CATCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src/tests)
|
|
add_library(Catch INTERFACE)
|
|
target_include_directories(Catch INTERFACE ${CATCH_INCLUDE_DIR}/*)
|
|
|
|
#Make test executable
|
|
set(TEST_SOURCES ${SOURCE_DIR}/../tests)
|
|
include_directories(${TEST_SOURCES})
|
|
|
|
file(GLOB SOURCES ${TEST_SOURCES}/*/*.cpp)
|
|
file(GLOB HEADER_SOURCES ${TEST_SOURCES}/*/*.hpp)
|
|
|
|
add_executable(tests ${SOURCES} ${HEADER_SOURCES})
|
|
|
|
target_link_libraries(tests Easylogging)
|
|
target_link_libraries(tests flippr_driver)
|
|
target_link_libraries(tests Catch)
|