################################################# # # (C) 2021 Michele Calgaro # Michele (DOT) Calgaro (AT) yahoo.it # # Improvements and feedback are welcome # # This file is released under GPL >= 2 # ################################################# ## Polkit TQt Library project("polkit-tqt") set(POLKIT-TQT_VERSION_MAJOR 0) set(POLKIT-TQT_VERSION_MINOR 103) set(POLKIT-TQT_VERSION_PATCH 0) set(POLKIT-TQT_VERSION_STRING "${POLKIT-TQT_VERSION_MAJOR}.${POLKIT-TQT_VERSION_MINOR}.${POLKIT-TQT_VERSION_PATCH}") ##### cmake setup ############################### cmake_minimum_required( VERSION 2.8.12 ) include( FindPkgConfig ) include( CheckCXXSourceCompiles ) include( CheckSymbolExists ) include( TDEMacros ) enable_testing( ) ##### 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 ) ##### install paths setup ####################### tde_setup_install_path( EXEC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ) tde_setup_install_path( BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" ) tde_setup_install_path( LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" ) tde_setup_install_path( INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/${CMAKE_PROJECT_NAME}" ) tde_setup_install_path( PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" ) ##### write pkgconfig file ###################### string( REGEX REPLACE "^${CMAKE_INSTALL_PREFIX}" "\${prefix}" PC_EXEC_PREFIX ${EXEC_INSTALL_PREFIX} ) string( REGEX REPLACE "^${CMAKE_INSTALL_PREFIX}" "\${prefix}" PC_INCLUDE_DIR ${INCLUDE_INSTALL_DIR} ) string( REGEX REPLACE "^${CMAKE_INSTALL_PREFIX}" "\${prefix}" PC_LIB_DIR ${LIB_INSTALL_DIR} ) configure_file( polkit-tqt.pc.cmake polkit-tqt.pc @ONLY ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/polkit-tqt.pc DESTINATION ${PKGCONFIG_INSTALL_DIR} ) configure_file( polkit-tqt-agent.pc.cmake polkit-tqt-agent.pc @ONLY ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/polkit-tqt-agent.pc DESTINATION ${PKGCONFIG_INSTALL_DIR} ) configure_file( polkit-tqt-core.pc.cmake polkit-tqt-core.pc @ONLY ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/polkit-tqt-core.pc DESTINATION ${PKGCONFIG_INSTALL_DIR} ) configure_file( polkit-tqt-gui.pc.cmake polkit-tqt-gui.pc @ONLY ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/polkit-tqt-gui.pc DESTINATION ${PKGCONFIG_INSTALL_DIR} ) ##### build setup ############################### 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" ) add_definitions( -DTQT_THREAD_SUPPORT ${TQT_CFLAGS_OTHER} ) ##### source directories ######################## add_subdirectory(core) add_subdirectory(gui) add_subdirectory(agent) add_subdirectory(tests) ##### install files #### ######################## install( FILES includes/PolkitTQt/Authority includes/PolkitTQt/Details includes/PolkitTQt/Identity includes/PolkitTQt/Subject includes/PolkitTQt/TemporaryAuthorization includes/PolkitTQt/ActionDescription DESTINATION ${INCLUDE_INSTALL_DIR}/PolkitTQt ) install( FILES includes/PolkitTQt/Gui/Action includes/PolkitTQt/Gui/ActionButton includes/PolkitTQt/Gui/ActionButtons DESTINATION ${INCLUDE_INSTALL_DIR}/PolkitTQt/Gui ) install( FILES includes/PolkitTQt/Agent/Listener includes/PolkitTQt/Agent/Session DESTINATION ${INCLUDE_INSTALL_DIR}/PolkitTQt/Agent ) install( FILES polkit-tqt-export.h ## ${CMAKE_CURRENT_BINARY_DIR}/polkittqt1-version.h DESTINATION ${INCLUDE_INSTALL_DIR} ) ## ## include (${TQT_USE_FILE}) ## include (InstallSettings) ## include (MacroWriteBasicCMakeVersionFile) ## include (CheckFunctionExists) ## ## include_directories( ## ${CMAKE_CURRENT_BINARY_DIR} ## ${POLKIT_AGENT_INCLUDE_DIR} ## ${GLIB2_INCLUDE_DIR} ## ${GOBJECT_INCLUDE_DIR} ## ${GIO_INCLUDE_DIR} ## ${CMAKE_CURRENT_SOURCE_DIR} ## ${CMAKE_CURRENT_SOURCE_DIR}/core ## ${CMAKE_CURRENT_SOURCE_DIR}/includes ## ${TQT_TQTXML_INCLUDE_DIR} ## ) ## ## if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.6.2) ## option(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR "Prefer to install the Config.cmake files to lib/cmake/ instead of lib//cmake" TRUE) ## endif(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.6.2) ## ## # The SONUMBER of the polkit-qt-1 libraries ## set(POLKIT-TQT_ABI_VERSION 1) ## # The version number of the polkit-qt-1 libraries ## set(POLKIT-TQT_LIBRARY_VERSION "${POLKIT-TQT_ABI_VERSION}.${POLKIT-TQT_VERSION_MINOR}.${POLKIT-TQT_VERSION_PATCH}") ## ## configure_file(polkittqt1-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/polkittqt1-version.h) ## ## install(FILES ## ## agent/polkittqt1-agent-listener.h ## agent/polkittqt1-agent-session.h ## ## ${CMAKE_CURRENT_BINARY_DIR}/polkittqt1-version.h ## polkit-tqt-export.h ## ## DESTINATION ## ${INCLUDE_INSTALL_DIR}/polkit-qt-1 ) ## ## ## # CMake Config files ## configure_file(PolkitTQt-1Config.cmake.in "${CMAKE_BINARY_DIR}/PolkitTQt-1Config.cmake" @ONLY) ## ## # this file is used by to check if the installed version can be used. ## macro_write_basic_cmake_version_file(${CMAKE_BINARY_DIR}/PolkitTQt-1ConfigVersion.cmake ## ${POLKIT-TQT_VERSION_MAJOR} ${POLKIT-TQT_VERSION_MINOR} ${POLKIT-TQT_VERSION_PATCH}) ## ## if(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR) ## set(_PolkitTQt-1Config_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/PolkitTQt-1) ## else(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR) ## set(_PolkitTQt-1Config_INSTALL_DIR ${LIB_INSTALL_DIR}/PolkitTQt-1/cmake) ## endif(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR) ## ## install(FILES ${CMAKE_BINARY_DIR}/PolkitTQt-1ConfigVersion.cmake ## ${CMAKE_BINARY_DIR}/PolkitTQt-1Config.cmake ## DESTINATION ${_PolkitTQt-1Config_INSTALL_DIR} ) ## ## option(BUILD_EXAMPLES "Builds a set of examples for polkit-qt-1" OFF) ## if (BUILD_EXAMPLES) ## add_subdirectory(examples) ## endif (BUILD_EXAMPLES) ## ## add_subdirectory(cmake) ## ## option(BUILD_TEST "Builds unit tests for polkit-qt-1" OFF) ## if (BUILD_TEST) ## add_subdirectory(test) ## endif (BUILD_TEST)