1st version
This commit is contained in:
47
CMakeLists.txt
Normal file
47
CMakeLists.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
# ptouch_label — build (libptouch, ptouch-print)
|
||||
#
|
||||
# Author: knb
|
||||
# Email: knb@artif.org
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(ptouch_label VERSION 1.0.0 LANGUAGES C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(LIBUSB REQUIRED IMPORTED_TARGET libusb-1.0)
|
||||
find_package(PNG REQUIRED)
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include/libptouch_version.h.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/libptouch_version.h"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
add_library(ptouch STATIC src/libptouch.c)
|
||||
target_include_directories(ptouch PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||
)
|
||||
target_link_libraries(ptouch PRIVATE PkgConfig::LIBUSB PNG::PNG)
|
||||
if(NOT MSVC)
|
||||
target_compile_options(ptouch PRIVATE -Wall -Wextra -Wpedantic)
|
||||
endif()
|
||||
|
||||
add_executable(ptouch-print src/cli/main.c)
|
||||
target_include_directories(ptouch-print PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
target_link_libraries(ptouch-print PRIVATE ptouch PkgConfig::LIBUSB)
|
||||
if(NOT MSVC)
|
||||
target_compile_options(ptouch-print PRIVATE -Wall -Wextra -Wpedantic)
|
||||
endif()
|
||||
|
||||
install(TARGETS ptouch ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(TARGETS ptouch-print RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include/libptouch.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/libptouch_version.h"
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
Reference in New Issue
Block a user