diff --git a/CMakeLists.txt b/CMakeLists.txt index d86e936..73bb3cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,80 +1,93 @@ -project(QAccessibilityClient) +cmake_minimum_required(VERSION 3.0.0) -set(QACCESSIBILITYCLIENT_VERSION_MAJOR 0) -set(QACCESSIBILITYCLIENT_VERSION_MINOR 1) -set(QACCESSIBILITYCLIENT_VERSION_PATCH 0) -set(QACCESSIBILITYCLIENT_VERSION ${QACCESSIBILITYCLIENT_VERSION_MAJOR}.${QACCESSIBILITYCLIENT_VERSION_MINOR}.${QACCESSIBILITYCLIENT_VERSION_PATCH}) +include(FeatureSummary) +find_package(ECM REQUIRED NO_MODULE) +set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") +feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) +set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) + +include(ECMSetupVersion) + +cmake_policy(SET CMP0048 NEW) +project(QAccessibilityClient VERSION "0.3.0") + +ecm_setup_version(${PROJECT_VERSION} + VARIABLE_PREFIX QACCESSIBILITYCLIENT + SOVERSION ${PROJECT_VERSION_MAJOR} + VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/libqaccessibilityclient-version.h" +) # minimum required cmake is 2.8.6 for automoc-support cmake_minimum_required(VERSION 2.8.6) add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) set(CMAKE_AUTOMOC TRUE) enable_testing() include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ) find_package(Qt5Widgets QUIET) find_package(Qt5DBus QUIET) find_package(Qt5Test QUIET) - set(BUILD_TESTS ${Qt5Test_FOUND}) +set(BUILD_TESTS ${Qt5Test_FOUND}) + add_definitions(${Qt5Core_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5DBus_DEFINITIONS}) include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS}) set(QACCESSIBILITYCLIENT_LIB_NAME "qaccessibilityclient-qt5") set(CMAKE_INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) if (WIN32) set(EXEC_INSTALL_PREFIX "") set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE STRING "Directory where lib will install") set(BIN_INSTALL_DIR "bin") set(INCLUDE_INSTALL_DIR "include") else (WIN32) if(APPLE) set(BUNDLE_INSTALL_DIR "/Applications/KDE4" CACHE PATH "Directory where application bundles will be installed to on OSX" ) endif(APPLE) set(EXEC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin") set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Directory where lib will install") set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include") endif (WIN32) set(_QAccessibilityClient_CONFIG_DEST "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}") set(INSTALL_TARGETS_DEFAULT_ARGS RUNTIME DESTINATION "${BIN_INSTALL_DIR}" LIBRARY DESTINATION "${LIB_INSTALL_DIR}" ARCHIVE DESTINATION "${LIB_INSTALL_DIR}" COMPONENT Devel ) if(APPLE) set(INSTALL_TARGETS_DEFAULT_ARGS ${INSTALL_TARGETS_DEFAULT_ARGS} BUNDLE DESTINATION "${BUNDLE_INSTALL_DIR}" ) endif(APPLE) add_subdirectory(src) add_subdirectory(tests) add_subdirectory(examples) # we need the absolute directories where stuff will be installed too # but since the variables which contain the destinations can be relative # or absolute paths, we need this macro to make them all absoulte, Alex macro(MAKE_INSTALL_PATH_ABSOLUTE out in) if (IS_ABSOLUTE "${in}") # IS_ABSOLUTE is new since cmake 2.4.8 set(${out} "${in}") else() set(${out} "\${CMAKE_INSTALL_PREFIX}/${in}") endif() endmacro(MAKE_INSTALL_PATH_ABSOLUTE out in) make_install_path_absolute(QACCESSIBILITYCLIENT_INCLUDE_DIR ${INCLUDE_INSTALL_DIR}) make_install_path_absolute(QACCESSIBILITYCLIENT_LIB_DIR ${LIB_INSTALL_DIR}) configure_file( "${QAccessibilityClient_SOURCE_DIR}/QAccessibilityClientConfig.cmake.in" "${QAccessibilityClient_BINARY_DIR}/QAccessibilityClientConfig.cmake" @ONLY ) install( FILES "${QAccessibilityClient_BINARY_DIR}/QAccessibilityClientConfig.cmake" DESTINATION "${_QAccessibilityClient_CONFIG_DEST}" ) diff --git a/examples/accessibleapps/CMakeLists.txt b/examples/accessibleapps/CMakeLists.txt index 86e113f..aa59060 100644 --- a/examples/accessibleapps/CMakeLists.txt +++ b/examples/accessibleapps/CMakeLists.txt @@ -1,38 +1,39 @@ -project(accessibleapps) +cmake_policy(SET CMP0048 NEW) +project(accessibleapps VERSION "") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x") add_definitions(${Qt5Core_EXECUTABLE_COMPILE_FLAGS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ) #To find the installed library: #set(LibKdeAccessibilityClient_DIR /usr/local/lib/cmake/) #find_package(LibKdeAccessibilityClient REQUIRED) #Instead we just use the one in the build directory since that's what we want to test. set(accessibleapps_SRCS main.cpp mainwindow.cpp accessibletree.cpp accessibleproperties.cpp clientcachedialog.cpp eventview.cpp uiview.cpp ) set(accessibleapps_UIS eventview.ui ) qt5_wrap_ui(accessibleapps_UI_HDRS ${accessibleapps_UIS}) add_executable(accessibleapps ${accessibleapps_SRCS} ${accessibleapps_MOC} ${accessibleapps_UI_HDRS}) target_link_libraries(accessibleapps ${Qt5Widgets_LIBRARIES} ${Qt5Test_LIBRARIES} ${QACCESSIBILITYCLIENT_LIB_NAME}) install(TARGETS accessibleapps DESTINATION bin) diff --git a/examples/dumper/CMakeLists.txt b/examples/dumper/CMakeLists.txt index 47f2803..0151bba 100644 --- a/examples/dumper/CMakeLists.txt +++ b/examples/dumper/CMakeLists.txt @@ -1,32 +1,33 @@ -project(dumper) +cmake_policy(SET CMP0048 NEW) +project(dumper VERSION "") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x") add_definitions(${Qt5Core_EXECUTABLE_COMPILE_FLAGS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ) #To find the installed library: #set(LibKdeAccessibilityClient_DIR /usr/local/lib/cmake/) #find_package(LibKdeAccessibilityClient REQUIRED) #Instead we just use the one in the build directory since that's what we want to test. set(accessibleapps_SRCS main.cpp dumper.cpp ) set(accessibleapps_UIS ) qt5_wrap_ui(accessibleapps_UI_HDRS ${accessibleapps_UIS}) add_executable(dumper ${accessibleapps_SRCS} ${accessibleapps_MOC} ${accessibleapps_UI_HDRS}) target_link_libraries(dumper ${Qt5Widgets_LIBRARIES} ${Qt5Test_LIBRARIES} ${QACCESSIBILITYCLIENT_LIB_NAME}) install(TARGETS dumper DESTINATION bin) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1ea66b5..9e86fd0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,42 +1,42 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src ) add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII) add_definitions(-DQACCESSIBILITYCLIENT_LIBRARY) set(QAccessibilityClient_SRCS qaccessibilityclient/accessibleobject_p.cpp qaccessibilityclient/accessibleobject.cpp qaccessibilityclient/registry.cpp qaccessibilityclient/registry_p.cpp ) set(QAccessibilityClientPrivate_SRCS atspi/dbusconnection.cpp atspi/qt-atspi.cpp ) add_library(${QACCESSIBILITYCLIENT_LIB_NAME} SHARED ${QAccessibilityClient_SRCS} ${QAccessibilityClientPrivate_SRCS}) target_link_libraries(${QACCESSIBILITYCLIENT_LIB_NAME} ${Qt5Core_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5DBus_LIBRARIES}) -set(QACCESSIBILITYCLIENT_SOVERSION ${QACCESSIBILITYCLIENT_VERSION_MAJOR}) set_target_properties(${QACCESSIBILITYCLIENT_LIB_NAME} - PROPERTIES VERSION ${QACCESSIBILITYCLIENT_VERSION} + PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${QACCESSIBILITYCLIENT_SOVERSION} ) install(TARGETS ${QACCESSIBILITYCLIENT_LIB_NAME} EXPORT QAccessibilityClient ${INSTALL_TARGETS_DEFAULT_ARGS}) install(EXPORT QAccessibilityClient DESTINATION ${_QAccessibilityClient_CONFIG_DEST}) ########### install files ############### install(FILES qaccessibilityclient/qaccessibilityclient_export.h qaccessibilityclient/accessibleobject.h qaccessibilityclient/registry.h + ${CMAKE_CURRENT_BINARY_DIR}/libqaccessibilityclient-version.h DESTINATION ${INCLUDE_INSTALL_DIR}/qaccessibilityclient COMPONENT Devel )