############################################ # # # Improvements and feedbacks are welcome # # # # This file is released under GPL >= 3 # # # ############################################ cmake_minimum_required( VERSION 3.1 ) #### general package setup project( smartcardauth ) set( VERSION R14.0.13 ) #### include essential cmake modules include( FindPkgConfig ) include( CheckFunctionExists ) include( CheckSymbolExists ) include( CheckIncludeFile ) include( CheckLibraryExists ) include( CheckCSourceCompiles ) #### include our cmake modules set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" ) include( TDEMacros ) ##### setup install paths include( TDESetupPaths ) tde_setup_paths( ) ##### optional stuff option( WITH_ALL_OPTIONS "Enable all optional support" OFF ) option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} ) ##### configure checks include( ConfigureChecks.cmake ) ###### global compiler settings add_definitions( -DHAVE_CONFIG_H ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" ) set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" ) set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" ) ##### directories add_subdirectory( src ) ##### write configure files configure_file( config.h.cmake config.h @ONLY ) ##### scriptor_standalone (executable) file( READ scriptor_standalone.pl SCRIPTOR ) string( REPLACE "scriptor" "scriptor_standalone" SCRIPTOR_STANDALONE "${SCRIPTOR}" ) file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone.pl "${SCRIPTOR_STANDALONE}" ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone COMMAND ${PERL_PAR_PACKER} -a ${PERL_LIB_CHIPCARD} -o ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone.pl COMMENT "Build scriptor_standalone" ) add_custom_target( scriptor_standalone-binary ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone ) install( PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone DESTINATION ${BIN_INSTALL_DIR} ) ##### other data install( DIRECTORY etc/ DESTINATION ${SYSCONF_INSTALL_DIR} ) file( GLOB SCRIPTS usr/bin/* ) install( PROGRAMS ${SCRIPTS} DESTINATION ${BIN_INSTALL_DIR} ) file( GLOB INITRAMFS_HOOKS usr/share/initramfs-tools/hooks/* ) install( PROGRAMS ${INITRAMFS_HOOKS} DESTINATION ${SHARE_INSTALL_PREFIX}/initramfs-tools/hooks ) install( DIRECTORY usr/share/applications usr/share/icons DESTINATION ${SHARE_INSTALL_PREFIX} )