diff --git a/CMakeLists.txt b/CMakeLists.txt index 29f7f2c..7c1cef0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,90 +1,96 @@ cmake_minimum_required(VERSION 3.0.0) 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" ) add_definitions(-DQT_USE_FAST_OPERATOR_PLUS) set(CMAKE_AUTOMOC TRUE) -enable_testing() +option(BUILD_TESTING "Build the testing tree." ON) +if(BUILD_TESTING) + enable_testing() + set(QT_OTHER_COMPONENTS Test) +endif() 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}) -add_definitions(${Qt5Core_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5DBus_DEFINITIONS}) -include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS}) +find_package(Qt5 "5.6.0" CONFIG REQUIRED COMPONENTS + Widgets + DBus + ${QT_OTHER_COMPONENTS} +) 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) + +if(BUILD_TESTING) + add_subdirectory(tests) + add_subdirectory(examples) +endif() # 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 aa59060..68bf168 100644 --- a/examples/accessibleapps/CMakeLists.txt +++ b/examples/accessibleapps/CMakeLists.txt @@ -1,39 +1,41 @@ 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}) +target_link_libraries(accessibleapps + Qt5::Widgets + ${QACCESSIBILITYCLIENT_LIB_NAME} +) install(TARGETS accessibleapps DESTINATION bin) diff --git a/examples/dumper/CMakeLists.txt b/examples/dumper/CMakeLists.txt index 0151bba..f26cfa5 100644 --- a/examples/dumper/CMakeLists.txt +++ b/examples/dumper/CMakeLists.txt @@ -1,33 +1,35 @@ 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}) +target_link_libraries(dumper + Qt5::Widgets + ${QACCESSIBILITYCLIENT_LIB_NAME} +) install(TARGETS dumper DESTINATION bin) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9e86fd0..06501aa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,42 +1,47 @@ 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}) +target_link_libraries(${QACCESSIBILITYCLIENT_LIB_NAME} + PUBLIC + Qt5::Widgets + Qt5::Core + PRIVATE + Qt5::DBus +) set_target_properties(${QACCESSIBILITYCLIENT_LIB_NAME} 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 ) diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt index 073374e..b1dd9cf 100644 --- a/tests/auto/CMakeLists.txt +++ b/tests/auto/CMakeLists.txt @@ -1,29 +1,32 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ) -find_package(Qt5Test QUIET) -add_definitions(${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Test_DEFINITIONS}) -include_directories(${Qt5Widgets_INCLUDE_DIRS} ${Qt5Test_INCLUDE_DIRS}) -add_definitions(${Qt5Core_EXECUTABLE_COMPILE_FLAGS}) -set(CMAKE_CXX_FLAGS ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}) - # The unittest app set(tst_accessibilityclient_SRCS tst_accessibilityclient.cpp ${CMAKE_SOURCE_DIR}/src/atspi/dbusconnection.cpp ) add_executable(tst_accessibilityclient ${tst_accessibilityclient_SRCS}) -target_link_libraries(tst_accessibilityclient ${Qt5Widgets_LIBRARIES} ${Qt5Test_LIBRARIES} ${QACCESSIBILITYCLIENT_LIB_NAME}) +target_link_libraries(tst_accessibilityclient + Qt5::Widgets + Qt5::DBus + Qt5::Test + ${QACCESSIBILITYCLIENT_LIB_NAME} +) add_test(NAME libkdeaccessibilityclient-tst_accessibilityclient COMMAND tst_accessibilityclient) # A test app that can run in a QProcess set(simplewidgetapp_SRCS simple/simplewidgetapp.cpp ) add_executable(simplewidgetapp ${simplewidgetapp_SRCS}) -target_link_libraries(simplewidgetapp ${Qt5Widgets_LIBRARIES} ${Qt5Test_LIBRARIES} ${QACCESSIBILITYCLIENT_LIB_NAME}) +target_link_libraries(simplewidgetapp + Qt5::Widgets + Qt5::Test + ${QACCESSIBILITYCLIENT_LIB_NAME} +)