cmake_minimum_required(VERSION 3.0) # Must use GNUInstallDirs to install libraries into correct # locations on all platforms. include(GNUInstallDirs) # Have CMake find our pthreads library within our toolchain (required for this library) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) find_package(Threads REQUIRED) # add all the *.c files as sources FILE(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/wiringPiD/*.c ${PROJECT_SOURCE_DIR}/wiringPi/*.c ) # add all the *.h files as headers FILE(GLOB HEADERS ${PROJECT_SOURCE_DIR}/devLib/*.h ${PROJECT_SOURCE_DIR}/wiringPi/*.h ) # make this output a shared library (with .so output) add_library (wiringPi SHARED ${SRC_FILES}) # be sure to include the current source directory for header files target_include_directories (wiringPi PUBLIC ${PROJECT_SOURCE_DIR}/wiringPi ${PROJECT_SOURCE_DIR}/devLib ) # add the following required libraries: # Threads, Math, Crypt, and RealTime target_link_libraries(wiringPi ${CMAKE_THREAD_LIBS_INIT} crypt m rt) # 'make install' to the correct locations (provided by GNUInstallDirs). install(TARGETS wiringPi EXPORT rpi ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})