diff --git a/CMakeLists.txt b/CMakeLists.txt index 93ccf9418..c6d59779e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,363 +1,236 @@ +cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) + project(umbrello) # KDE Application Version, managed by release script set (KDE_APPLICATIONS_VERSION_MAJOR "19") set (KDE_APPLICATIONS_VERSION_MINOR "03") set (KDE_APPLICATIONS_VERSION_MICRO "90") set(UMBRELLO_VERSION_MAJOR "2") MATH(EXPR UMBRELLO_VERSION_MINOR "30-${KDE_APPLICATIONS_VERSION_MINOR}") set(UMBRELLO_VERSION_PATCH ${KDE_APPLICATIONS_VERSION_MICRO}) option(BUILD_ICONS "Create icons from svg source" OFF) option(BUILD_CURSOR_ICONS "Create cursor icons from svg source" OFF) option(BUILD_ICONS_INTO_SIZE_RELATED_DIRS "place icons into separate directories (for debugging purpose)" OFF) option(BUILD_KF5 "Build for KDE Frameworks 5" ON) # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) include(Macros) set(CMAKE_AUTORCC ON) if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-delete-null-pointer-checks") # TODO: after removing kdelibs4support this could also be removed set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") endif() -find_package(KDevelop-PG-Qt) - if(NOT BUILD_KF5) - cmake_minimum_required(VERSION 2.8 FATAL_ERROR) - set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) - find_package(Qt4 4.4.3 REQUIRED QtCore QtGui QtXml QtTest QtWebKit) - - # search packages used by KDE - find_package(KDE4 REQUIRED) - include(KDE4Defaults) - include(MacroLibrary) - - # The FindKDE4.cmake module sets _KDE4_PLATFORM_DEFINITIONS with - # definitions like _GNU_SOURCE that are needed on each platform. - set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} -DQT_STRICT_ITERATORS) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - - add_definitions ( - ${KDE4_DEFINITIONS} - ) - - include_directories( - ${KDE4_INCLUDES} - ) - - if(KDE4_BUILD_TESTS) - enable_testing() - set(BUILD_UNITTESTS 1) - endif() - - macro(ki18n_wrap_ui) - kde4_add_ui_files(${ARGN}) - endmacro(ki18n_wrap_ui) - - macro(kconfig_add_kcfg_files) - kde4_add_kcfg_files(${ARGN}) - endmacro(kconfig_add_kcfg_files) - - macro(ecm_optional_add_subdirectory) - add_subdirectory(${ARGN}) - endmacro(ecm_optional_add_subdirectory) - - macro(ecm_add_test) - set(sources) - set(libs) - set(name_prefix) - set(test_name) - set(mode 0) - set(guimode "NOGUI") - foreach(a ${ARGN}) - if(a STREQUAL "LINK_LIBRARIES") - set(mode 1) - elseif(a STREQUAL "NAME_PREFIX") - set(mode 2) - elseif(a STREQUAL "GUI") - set(guimode "GUI") - set(mode 3) - elseif(a STREQUAL "TEST_NAME") - set(mode 4) - elseif (mode EQUAL 0) - list(APPEND sources ${a}) - elseif(mode EQUAL 1) - list(APPEND libs ${a}) - elseif(mode EQUAL 2) - set(name_prefix ${a}) - elseif(mode EQUAL 4) - set(test_name ${a}) - endif() - endforeach(a) - - set(targetname ${test_name}) - if(name_prefix) - set(testname ${name_prefix}-${targetname}) - else() - set(testname ${targetname}) - endif() - kde4_add_unit_test(${targetname} TESTNAME ${testname} ${guimode} ${sources}) - target_link_libraries(${targetname} ${libs}) - endmacro(ecm_add_test) - - macro(ecm_add_executable) - kde4_add_executable(${ARGN}) - endmacro(ecm_add_executable) - - macro(ecm_mark_nongui_executable) - foreach(_target ${ARGN}) - set_target_properties(${_target} - PROPERTIES - WIN32_EXECUTABLE FALSE - MACOSX_BUNDLE FALSE - ) - endforeach() - endmacro(ecm_mark_nongui_executable) - - macro(kdoctools_create_handbook) - set(KDOCTOOLS_CUSTOMIZATION_DIR "${KDE4_DATA_INSTALL_DIR}/ksgmltools2/customization") - set(KDEX_DTD ${KDE4_DATA_DIR}/ksgmltools2/customization/dtd/kdex.dtd) - set(kdedbx45_dtd " - - %kdexDTD; - ") - set(CUSTOM_DTD ${CMAKE_CURRENT_SOURCE_DIR}/dtd/kdedbx45.dtd) - if (NOT EXISTS ${CUSTOM_DTD}) - file(WRITE ${CUSTOM_DTD} "${kdedbx45_dtd}") - endif() - kde4_create_handbook(${ARGN}) - endmacro() - if(NOT DISABLE_PHP_IMPORT) - find_package(KDevelop-PG-Qt) - find_package(KDevPlatform) - if ("${KDevPlatform_VERSION_MAJOR}" STREQUAL "5") - message(FATAL_ERROR "Could not compile with KF5 based kdevplatform. Please uninstall or specify -DDISABLE_PHP_IMPORT=1") - endif() - endif() - if(KDEVPGQT_FOUND AND KDEVPLATFORM_FOUND) - include_directories( - ${KDEVPGQT_INCLUDE_DIR} - ${KDEVPLATFORM_INCLUDE_DIR} - ${CMAKE_SOURCE_DIR}/lib/kdev4-php/parser - ${CMAKE_BINARY_DIR}/lib/kdev4-php/parser - ) - set(NO_INSTALL 1) - set(BUILD_PARSER_ONLY 1) - set(BUILD_PHP_IMPORT 1) - add_definitions( - -DKDEVPHPPARSER_EXPORT= - -DENABLE_PHP_IMPORT - ) - add_subdirectory(lib/kdev4-php) - endif() - - macro_display_feature_log() - KDE4_NO_ENABLE_FINAL(umbrello) - set(UMBRELLO_DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/umbrello) + include(ECMKDE4Macros) + set(QT_MIN_VERSION "4.8.0") + set(KDEV_MIN_VERSION 1.5.2) + set(KDEV_SOURCE_DIR lib/kdev4-php) + set(KDEV_COMPONENTS) else() - cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) - # we need some parts of the ECM CMake helpers find_package(ECM 1.1.0 REQUIRED NO_MODULE) list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(KDEInstallDirs) include(KDECompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) include(FeatureSummary) include(ECMInstallIcons) include(ECMSetupVersion) include(ECMOptionalAddSubdirectory) include(ECMAddAppIcon) include(ECMAddTests) - - # search packages used by Qt set(QT_MIN_VERSION "5.2.0") - find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS - Core - Gui - PrintSupport - Svg - Test - Widgets - Xml - WebKitWidgets - ) + set(KDEV_MIN_VERSION 5.1.2) + set(KDEV_SOURCE_DIR lib/kdev5-php) + set(KDEV_COMPONENTS KDev::Interfaces KDev::Language KDev::Tests) +endif() - # search packages used by KDE - find_package(KF5 REQUIRED COMPONENTS - Archive - Completion - Config - CoreAddons - Crash - DocTools - I18n - IconThemes - KDELibs4Support - KIO - TextEditor - WidgetsAddons - WindowSystem - XmlGui +# search packages used by Qt +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS + Core + Gui + PrintSupport + Svg + Test + Widgets + Xml + WebKitWidgets +) + +# search packages used by KDE +find_package(KF5 REQUIRED COMPONENTS + Archive + Completion + Config + CoreAddons + Crash + DocTools + I18n + IconThemes + KDELibs4Support + KIO + TextEditor + WidgetsAddons + WindowSystem + XmlGui +) + +if(NOT DISABLE_PHP_IMPORT) + find_package(KDevelop-PG-Qt) + find_package(KDevPlatform ${KDEV_MIN_VERSION} COMPONENTS ${KDEV_COMPONENTS}) +endif() +if(KDEVPGQT_FOUND AND KDEVPLATFORM_FOUND) + include_directories( + ${KDEVPGQT_INCLUDE_DIR} + ${KDEVPLATFORM_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR}/${KDEV_SOURCE_DIR}/parser + ${CMAKE_BINARY_DIR}/${KDEV_SOURCE_DIR}/parser ) + set(NO_INSTALL 1) + set(BUILD_PARSER_ONLY 1) + set(BUILD_PHP_IMPORT 1) + add_definitions( + -DKDEVPHPPARSER_EXPORT= + -DENABLE_PHP_IMPORT + ) + add_subdirectory(${KDEV_SOURCE_DIR}) +endif() - macro(ecm_add_executable) - add_executable(${ARGN}) - endmacro(ecm_add_executable) +set(UMBRELLO_DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/umbrello${APP_SUFFIX}) +if(NOT BUILD_KF5) + macro_display_feature_log() + KDE4_NO_ENABLE_FINAL(umbrello) +else() set(BUILD_UNITTESTS 1) - set(UMBRELLO_DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/umbrello5) ki18n_install(po) kdoctools_install(po) - - find_package(KDevPlatform "5.1.2" COMPONENTS - KDev::Interfaces - KDev::Language - KDev::Tests - ) - if(KDEVPGQT_FOUND AND KDEVPLATFORM_FOUND AND TARGET KDev::Tests) - include_directories( - ${KDEVPGQT_INCLUDE_DIR} - ${KDEVPLATFORM_INCLUDE_DIR} - ${CMAKE_SOURCE_DIR}/lib/kdev5-php/parser - ${CMAKE_BINARY_DIR}/lib/kdev5-php/parser - ) - set(NO_INSTALL 1) - set(BUILD_PARSER_ONLY 1) - set(BUILD_PHP_IMPORT 1) - add_definitions( - -DKDEVPHPPARSER_EXPORT= - -DENABLE_PHP_IMPORT - ) - add_subdirectory(lib/kdev5-php) - elseif(NOT TARGET KDev::Tests) + if(NOT TARGET KDev::Tests) message(STATUS "Could not find required KDevPlatform component KDev::Tests - disabling php import support") endif() endif() if(POLICY CMP0071) cmake_policy(SET CMP0071 OLD) endif() # use some compile flags add_definitions( -DQT_NO_SIGNAL_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING ) # set default umbrello version # umbrello version could be overridden by cmake command line using -DUMBRELLO_VERSION_STRING=major.minor.patch if(NOT UMBRELLO_VERSION_STRING) set(UMBRELLO_VERSION_STRING "${UMBRELLO_VERSION_MAJOR}.${UMBRELLO_VERSION_MINOR}.${UMBRELLO_VERSION_PATCH}") if(EXISTS ${CMAKE_SOURCE_DIR}/.git) execute_process( COMMAND git rev-parse --short HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE _hash ) if(_hash) string(REPLACE "\n" "" hash ${_hash}) set(UMBRELLO_VERSION_STRING "${UMBRELLO_VERSION_STRING}-${hash}") endif() endif() endif() message(STATUS "Using umbrello version ${UMBRELLO_VERSION_STRING}") add_definitions(-DUMBRELLO_VERSION_STRING="${UMBRELLO_VERSION_STRING}") message(STATUS "Using automoc4 version ${AUTOMOC4_VERSION}") message(STATUS "Using cmake version ${CMAKE_VERSION}") -if (BUILD_KF5) - set(QTVERSION ${Qt5Widgets_VERSION}) -endif() message(STATUS "Using Qt version ${QTVERSION}") find_package(LibXslt) set_package_properties(LibXslt PROPERTIES DESCRIPTION "A library to transform XMLfiles into other XML files." URL "http://xmlsoft.org/XSLT" TYPE REQUIRED) find_package(LibXml2) set_package_properties(LibXml2 PROPERTIES DESCRIPTION "Libraries used to develop XML applications." URL "http://xmlsoft.org" TYPE REQUIRED) include_directories( ${CMAKE_BINARY_DIR} ) # # Unstable features should not be enabled in stable branches # This macro limits unstable feature to development branches # by only adding -DENABLE_ to the compile command when # the patch level is >= 70 which includes releases from master # beta and rc releases. On cmake configure time a related status # note is displayed. # # syntax: add_unstable_feature() # # In code wrap feature related code with # # #ifdef ENABLE_ # # #endif # macro(add_unstable_feature name) if(UMBRELLO_VERSION_PATCH GREATER 69) add_definitions(-DENABLE_${name}) set(ENABLE_${name} 1) message(STATUS "Enable unstable feature ${name} - use '#ifdef ENABLE_${name}' in related code") else() set(ENABLE_${name} 0) message(STATUS "Disable unstable feature ${name}") endif() endmacro(add_unstable_feature) add_unstable_feature(WIDGET_SHOW_DOC) # show documentation in classes ticket xxx add_unstable_feature(NEW_CODE_GENERATORS) # new c++ code generator add_unstable_feature(UML_OBJECTS_WINDOW) # objects dock window add_unstable_feature(XMIRESOLUTION) # see https://bugs.kde.org/show_bug.cgi?id=90103 # Current object diagram implementation does not follow UML 1.4 standard # because of using umbrello specific XMI tag (UML:InstanceAttribute). add_unstable_feature(OBJECT_DIAGRAM) # see https://bugs.kde.org/show_bug.cgi?id=123633 configure_file(Doxyfile ${CMAKE_BINARY_DIR}/Doxyfile) find_program(DOXYGEN_EXECUTABLE doxygen) if(DOXYGEN_EXECUTABLE) add_custom_target(apidoc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile ) endif() if(LIBXSLT_FOUND AND LIBXML2_FOUND) add_subdirectory(umbrello) add_subdirectory(doc) add_subdirectory(tools) endif(LIBXSLT_FOUND AND LIBXML2_FOUND) add_subdirectory(maintainer) # for automatic unit tests if(BUILD_UNITTESTS) ecm_optional_add_subdirectory(unittests) endif() feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/cmake/modules/ECMKDE4Macros.cmake b/cmake/modules/ECMKDE4Macros.cmake new file mode 100644 index 000000000..5acb536d8 --- /dev/null +++ b/cmake/modules/ECMKDE4Macros.cmake @@ -0,0 +1,128 @@ +# +# ecm compatible build system wrapper for KDE4 +# + +macro(ki18n_wrap_ui) + kde4_add_ui_files(${ARGN}) +endmacro(ki18n_wrap_ui) + +macro(kconfig_add_kcfg_files) + kde4_add_kcfg_files(${ARGN}) +endmacro(kconfig_add_kcfg_files) + +macro(ecm_optional_add_subdirectory) + add_subdirectory(${ARGN}) +endmacro(ecm_optional_add_subdirectory) + +macro(ecm_add_test) + set(sources) + set(libs) + set(name_prefix) + set(test_name) + set(mode 0) + set(guimode "NOGUI") + foreach(a ${ARGN}) + if(a STREQUAL "LINK_LIBRARIES") + set(mode 1) + elseif(a STREQUAL "NAME_PREFIX") + set(mode 2) + elseif(a STREQUAL "GUI") + set(guimode "GUI") + set(mode 3) + elseif(a STREQUAL "TEST_NAME") + set(mode 4) + elseif (mode EQUAL 0) + list(APPEND sources ${a}) + elseif(mode EQUAL 1) + list(APPEND libs ${a}) + elseif(mode EQUAL 2) + set(name_prefix ${a}) + elseif(mode EQUAL 4) + set(test_name ${a}) + endif() + endforeach(a) + + set(targetname ${test_name}) + if(name_prefix) + set(testname ${name_prefix}-${targetname}) + else() + set(testname ${targetname}) + endif() + kde4_add_unit_test(${targetname} TESTNAME ${testname} ${guimode} ${sources}) + target_link_libraries(${targetname} ${libs}) +endmacro(ecm_add_test) + +macro(add_executable) + # avoid recursive loops + math(EXPR in_add_executable "${in_add_executable} + 1") + if(${in_find_package} OR ${in_add_executable} GREATER 1) + _add_executable(${ARGV}) + else() + kde4_add_executable(${ARGV}) + endif() + math(EXPR in_add_executable "${in_add_executable} - 1") +endmacro(add_executable) + +macro(ecm_mark_nongui_executable) + foreach(_target ${ARGN}) + set_target_properties(${_target} + PROPERTIES + WIN32_EXECUTABLE FALSE + MACOSX_BUNDLE FALSE + ) + endforeach() +endmacro(ecm_mark_nongui_executable) + +macro(kdoctools_create_handbook) + set(KDOCTOOLS_CUSTOMIZATION_DIR "${KDE4_DATA_INSTALL_DIR}/ksgmltools2/customization") + set(KDEX_DTD ${KDE4_DATA_DIR}/ksgmltools2/customization/dtd/kdex.dtd) + set(kdedbx45_dtd " + +%kdexDTD; +") + set(CUSTOM_DTD ${CMAKE_CURRENT_SOURCE_DIR}/dtd/kdedbx45.dtd) + if (NOT EXISTS ${CUSTOM_DTD}) + file(WRITE ${CUSTOM_DTD} "${kdedbx45_dtd}") + endif() + kde4_create_handbook(${ARGN}) +endmacro() + +macro(ecm_install_icons) + kde4_install_icons(${ICON_INSTALL_DIR}) +endmacro() + + +macro(find_package package) + # avoid recursive loops + math(EXPR in_find_package "${in_find_package} + 1") + #message("-- ${ARGV} --") + if("${package}" MATCHES "^(Qt5)") + #message("-- replaced by finding Qt4 --") + _find_package(Qt4 4.4.3 REQUIRED QtCore QtGui QtXml QtTest QtWebKit) + elseif("${package}" MATCHES "^(KF5)$") + #message("-- replaced by finding KDE4 --") + _find_package(KDE4 REQUIRED) + include(KDE4Defaults) + include(MacroLibrary) + + # The FindKDE4.cmake module sets _KDE4_PLATFORM_DEFINITIONS with + # definitions like _GNU_SOURCE that are needed on each platform. + set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} -DQT_STRICT_ITERATORS) + add_definitions (${KDE4_DEFINITIONS}) + include_directories(${KDE4_INCLUDES}) + if(KDE4_BUILD_TESTS) + enable_testing() + set(BUILD_UNITTESTS 1) + endif() + elseif("${package}" MATCHES "^(KDevPlatform)$") + _find_package(${ARGV}) + if ("${KDevPlatform_VERSION_MAJOR}" STREQUAL "5") + message(FATAL_ERROR "Could not compile with KF5 based kdevplatform. Please uninstall or specify -DDISABLE_PHP_IMPORT=1") + endif() + else() + _find_package(${ARGV}) + endif() + math(EXPR in_find_package "${in_find_package} - 1") +endmacro() diff --git a/maintainer/CMakeLists.txt b/maintainer/CMakeLists.txt index c2c1b76f3..5f622c1c8 100644 --- a/maintainer/CMakeLists.txt +++ b/maintainer/CMakeLists.txt @@ -1,7 +1,7 @@ # to regenerate icons if(BUILD_ICONS OR BUILD_CURSOR_ICONS) set(svg2png_SRCS svg2png.cpp) - ecm_add_executable(svg2png ${svg2png_SRCS}) + add_executable(svg2png ${svg2png_SRCS}) target_link_libraries(svg2png ${QT_QTXML_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTSVG_LIBRARY}) endif() diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index d3a4a5a3f..d2c616ecb 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,29 +1,29 @@ if(NOT BUILD_KF5) set(LIBS Qt4::QtXml Qt4::QtCore) else() set(LIBS Qt5::Xml Qt5::Core) endif() set(po2xmi_SRCS po2xmi.cpp shared.cpp) -ecm_add_executable(po2xmi ${po2xmi_SRCS}) +add_executable(po2xmi ${po2xmi_SRCS}) target_link_libraries(po2xmi ${LIBS}) if(BUILD_KF5) set_target_properties(po2xmi PROPERTIES OUTPUT_NAME po2xmi5) endif() install(TARGETS po2xmi ${INSTALL_TARGETS_DEFAULT_ARGS}) set(xmi2pot_SRCS xmi2pot.cpp shared.cpp) -ecm_add_executable(xmi2pot ${xmi2pot_SRCS}) +add_executable(xmi2pot ${xmi2pot_SRCS}) target_link_libraries(xmi2pot ${LIBS}) if(BUILD_KF5) set_target_properties(xmi2pot PROPERTIES OUTPUT_NAME xmi2pot5) endif() install(TARGETS xmi2pot ${INSTALL_TARGETS_DEFAULT_ARGS}) ecm_mark_nongui_executable(po2xmi xmi2pot) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 5934a62f1..e8e55e0f8 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -1,156 +1,156 @@ set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}) set(SRC_PATH ../umbrello) include_directories( ${LIBXML2_INCLUDE_DIR} ${LIBXSLT_INCLUDE_DIR} ${CMAKE_SOURCE_DIR} ${SRC_PATH} ${SRC_PATH}/debug/ ${SRC_PATH}/dialogs/ ${SRC_PATH}/dialogs/pages ${SRC_PATH}/dialogs/widgets ${SRC_PATH}/clipboard ${SRC_PATH}/cmds ${SRC_PATH}/codegenerators ${SRC_PATH}/codegenerators/ada/ ${SRC_PATH}/codegenerators/as/ ${SRC_PATH}/codegenerators/cpp/ ${SRC_PATH}/codegenerators/csharp/ ${SRC_PATH}/codegenerators/d/ ${SRC_PATH}/codegenerators/idl/ ${SRC_PATH}/codegenerators/java/ ${SRC_PATH}/codegenerators/js/ ${SRC_PATH}/codegenerators/pascal/ ${SRC_PATH}/codegenerators/perl/ ${SRC_PATH}/codegenerators/php/ ${SRC_PATH}/codegenerators/python/ ${SRC_PATH}/codegenerators/ruby/ ${SRC_PATH}/codegenerators/sql/ ${SRC_PATH}/codegenerators/tcl/ ${SRC_PATH}/codegenerators/vala/ ${SRC_PATH}/codegenerators/xml/ ${SRC_PATH}/codegenwizard ${SRC_PATH}/codeimport ${SRC_PATH}/debug ${SRC_PATH}/dialogs ${SRC_PATH}/docgenerators ${SRC_PATH}/menus/ ${SRC_PATH}/refactoring ${SRC_PATH}/uml1model/ ${SRC_PATH}/umlwidgets/ ${CMAKE_CURRENT_BINARY_DIR} ) if(NOT BUILD_KF5) set(LIBS Qt4::QtCore Qt4::QtGui Qt4::QtXml Qt4::QtTest Qt4::QtWebKit ${KDE4_KFILE_LIBS} ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} libumbrello ) else() set(LIBS Qt5::Xml Qt5::Test Qt5::Widgets Qt5::WebKitWidgets KF5::I18n KF5::Crash ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} libumbrello ) endif() ecm_add_test( testbasictypes.cpp LINK_LIBRARIES ${LIBS} TEST_NAME testbasictypes ) ecm_add_test( testumlobject.cpp testbase.cpp LINK_LIBRARIES ${LIBS} TEST_NAME testumlobject ) #ecm_add_test( # testclassifier.cpp # testbase.cpp # LINK_LIBRARIES ${LIBS} # TEST_NAME testclassifier #) ecm_add_test( testcppwriter.cpp testbase.cpp LINK_LIBRARIES ${LIBS} TEST_NAME testcppwriter ) ecm_add_test( testpythonwriter.cpp testbase.cpp LINK_LIBRARIES ${LIBS} TEST_NAME testpythonwriter ) ecm_add_test( testoptionstate.cpp testbase.cpp LINK_LIBRARIES ${LIBS} TEST_NAME testoptionstate ) set(testumlroledialog_SRCS testumlroledialog.cpp ) -ecm_add_executable(testumlroledialog ${testumlroledialog_SRCS}) +add_executable(testumlroledialog ${testumlroledialog_SRCS}) target_link_libraries(testumlroledialog ${LIBS}) -ecm_add_executable(testcrashhandler testcrashhandler.cpp) +add_executable(testcrashhandler testcrashhandler.cpp) target_link_libraries(testcrashhandler ${LIBS}) -ecm_add_executable(testlistpopupmenu testlistpopupmenu.cpp testbase.cpp) +add_executable(testlistpopupmenu testlistpopupmenu.cpp testbase.cpp) target_link_libraries(testlistpopupmenu ${LIBS}) find_package(LLVM CONFIG) find_package(CLANG QUIET) if(LLVM_FOUND AND CLANG_FOUND) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") message(STATUS "Found CLANG ${CLANG_PACKAGE_VERSION}") include_directories(${LLVM_INCLUDE_DIRS}) add_definitions(${LLVM_DEFINITIONS}) include_directories(${CLANG_INCLUDE_DIRS}) add_definitions(${CLANG_DEFINITIONS}) # Now build our tools add_executable(testllvm testllvm.cpp) # Find the libraries that correspond to the LLVM components # that we wish to use llvm_map_components_to_libnames(llvm_libs support core irreader analysis) # Link against LLVM libraries target_link_libraries(testllvm ${llvm_libs} clangFrontend clangTooling) add_executable(testllvmparser testllvmparser.cpp) llvm_map_components_to_libnames(llvm_libs support) target_link_libraries(testllvmparser ${llvm_libs} clangFrontend clangTooling clangAST clangBasic ${LIBS}) ecm_mark_nongui_executable(testllvm testllvmparser) endif() add_custom_target(check COMMAND ${CMAKE_BUILD_TOOL} test)