inital commit
This commit is contained in:
44
libfandevice/CMakeLists.txt
Normal file
44
libfandevice/CMakeLists.txt
Normal file
@ -0,0 +1,44 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
project(fandevice)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(Doxygen)
|
||||
pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
|
||||
|
||||
set(SRC_FILES fandevice.c usbshm.c)
|
||||
|
||||
message("Platform " ${CMAKE_SYSTEM_NAME})
|
||||
if(WIN32)
|
||||
message("Building for Windows")
|
||||
file(GLOB_RECURSE ARGP_SRC ${PROJECT_SOURCE_DIR}/argp/*.*)
|
||||
set(SRC_FILES ${SRC_FILES} ${ARGP_SRC})
|
||||
include_directories(./argp)
|
||||
else()
|
||||
message("Building for UNIX")
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "..." FORCE)
|
||||
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
endif(WIN32)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED ${SRC_FILES})
|
||||
target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES})
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${LIBUSB_INCLUDE_DIRS})
|
||||
add_definitions("-std=c17 -Wall -O2 -fno-strict-aliasing")
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
|
||||
install(FILES ./fandevice.h DESTINATION include)
|
||||
|
||||
link_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_executable(${PROJECT_NAME}_cli main.c)
|
||||
add_dependencies(${PROJECT_NAME}_cli ${PROJECT_NAME})
|
||||
target_link_libraries( ${PROJECT_NAME}_cli ${PROJECT_NAME})
|
||||
add_definitions("-std=c17 -Wall -O2 -fno-strict-aliasing")
|
||||
install(TARGETS ${PROJECT_NAME}_cli DESTINATION bin)
|
||||
|
||||
configure_file(pkgconfig/fandevice.pc.in pkgconfig/fandevice.pc @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/fandevice.pc DESTINATION lib/pkgconfig)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "^Linux")
|
||||
set(UDEV_RULES_INSTALL_DIR /lib/udev/rules.d CACHE PATH "install directory for linux udev config")
|
||||
install(FILES 90-fandevice.rules DESTINATION ${UDEV_RULES_INSTALL_DIR})
|
||||
endif()
|
Reference in New Issue
Block a user