Warning, /sdk/codevis/desktopapp/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 include_directories(${LLVM_INCLUDE_DIR} SYSTEM)
0002 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
0003 include_directories(${CMAKE_CURRENT_BINARY_DIR})
0004 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../submodules/backward-cpp)
0005
0006 set(CodeVisDesktop_SRCS
0007 codevis_dbus_interface.cpp
0008 mainwindow.cpp
0009 projectsettingsdialog.cpp
0010 )
0011
0012 cmake_language(CALL
0013 qt${QT_MAJOR_VERSION}_wrap_cpp
0014 CodeVisDesktop_SRCS
0015 mainwindow.h
0016 projectsettingsdialog.h
0017 codevis_dbus_interface.h
0018 )
0019
0020 cmake_language(CALL
0021 qt${QT_MAJOR_VERSION}_add_resources
0022 CodeVisDesktop_SRCS
0023 desktopapp.qrc
0024 )
0025
0026 cmake_language(CALL
0027 qt${QT_MAJOR_VERSION}_wrap_ui
0028 CodeVisDesktop_SRCS
0029 mainwindow.ui
0030 projectsettingsdialog.ui
0031 )
0032
0033 set(CODEVIS_DESKTOP_QT_LIBRARIES
0034 Qt${QT_MAJOR_VERSION}::Core
0035 Qt${QT_MAJOR_VERSION}::Gui
0036 Qt${QT_MAJOR_VERSION}::Widgets
0037 )
0038
0039 if (USE_QT_WEBENGINE)
0040 set(CODEVIS_DESKTOP_QT_LIBRARIES "${CODEVIS_DESKTOP_QT_LIBRARIES}" Qt${QT_MAJOR_VERSION}::WebEngineWidgets)
0041 endif()
0042
0043 # Mac and Windows are currently failing on the CI
0044 if (UNIX AND NOT APPLE)
0045 set(CodeVisDesktop_DBUS_SRCS
0046 ${CMAKE_CURRENT_BINARY_DIR}/org.codethink.CodeVis.xml
0047 )
0048
0049 cmake_language(CALL
0050 qt${QT_MAJOR_VERSION}_generate_dbus_interface
0051 codevis_dbus_interface.h
0052 org.codethink.CodeVis.xml
0053 # Only parse scriptable properties.
0054 OPTIONS -p -s -m
0055 )
0056
0057 # install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.codethink.CodeVis.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR})
0058
0059 cmake_language(CALL
0060 qt${QT_MAJOR_VERSION}_add_dbus_adaptor
0061 CodeVisDesktop_DBUS_SRCS
0062 ${CMAKE_CURRENT_BINARY_DIR}/org.codethink.CodeVis.xml
0063 codevis_dbus_interface.h
0064 CodeVisDBusInterface # Classname used for the adaptor.
0065 )
0066
0067 set(CODEVIS_DESKTOP_QT_LIBRARIES ${CODEVIS_DESKTOP_QT_LIBRARIES} Qt${QT_MAJOR_VERSION}::DBus)
0068 endif()
0069
0070 if (APPLE)
0071 set(CodeVisIcon_SRCS ${PROJECT_SOURCE_DIR}/iconset.icns)
0072 set_source_files_properties(${CodeVisIcon_SRCS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
0073
0074 # clang headers
0075 file(GLOB_RECURSE AppleHeaders_SRCS ${CT_CLANG_HEADERS_DIR}/*.h)
0076 set_source_files_properties(${AppleHeaders_SRCS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/include")
0077 endif()
0078
0079 if (WIN32)
0080 # set(CodeVisIcon_SRCS ${PROJECT_SOURCE_DIR}/packaging/windows/applicationicon.rc)
0081 set(WindowsKeyword WIN32)
0082 endif()
0083
0084 add_library(codevis_lib STATIC
0085 ${CodeVisDesktop_DBUS_SRCS}
0086 ${CodeVisIcon_SRCS}
0087 ${CodeVisDesktop_SRCS}
0088 ${AppleHeaders_SRCS}
0089 )
0090
0091 if (${KF_VERSION_MINOR} LESS 90)
0092 message("Warning: Old KDE Framework version doesn't have KFNewStuffWidgets available. Disabling support.")
0093 set(KFNewStuffWidgetsIfAvailable "") # No such library
0094 else()
0095 set(KFNewStuffWidgetsIfAvailable KF${KF_MAJOR_VERSION}::NewStuffWidgets)
0096 endif()
0097
0098 target_link_libraries(
0099 codevis_lib
0100
0101 KF${KF_MAJOR_VERSION}::Crash
0102 KF${KF_MAJOR_VERSION}::WidgetsAddons
0103 KF${KF_MAJOR_VERSION}::XmlGui
0104 KF${KF_MAJOR_VERSION}::CoreAddons
0105 KF${KF_MAJOR_VERSION}::I18n
0106 KF${KF_MAJOR_VERSION}::Notifications
0107 KF${KF_MAJOR_VERSION}::NewStuffCore
0108 ${KFNewStuffWidgetsIfAvailable}
0109
0110 Codethink::lvtmdl
0111 Codethink::lvtprj
0112 Codethink::lvtqtw
0113 Codethink::lvtqtc
0114 Codethink::lvtplg
0115 Codethink::lvtcgn_adapter
0116
0117 resources
0118
0119 ${CODEVIS_DESKTOP_QT_LIBRARIES}
0120 )
0121
0122 add_executable(codevis_desktop
0123 MACOSX_BUNDLE
0124 ${WindowsKeyword}
0125 desktopapp.m.cpp
0126 )
0127
0128 target_link_libraries(
0129 codevis_desktop
0130 codevis_lib
0131 )
0132
0133 if (NOT ${KDE_FRAMEWORKS_IS_OLD})
0134 install(TARGETS codevis_desktop ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0135 install(FILES codevis.knsrc DESTINATION ${KDE_INSTALL_KNSRCDIR})
0136 install(
0137 FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.kde.codevis.metainfo.xml
0138 DESTINATION ${KDE_INSTALL_METAINFODIR}
0139 )
0140 install(FILES org.kde.codevis.desktop DESTINATION ${KDE_INSTALL_APPDIR})
0141 install(FILES codevis.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR})
0142 endif()
0143
0144 file(COPY ${CMAKE_SOURCE_DIR}/python/ DESTINATION ${CMAKE_BINARY_DIR}/desktopapp/python/)
0145
0146 if (COMPILE_TESTS)
0147 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testcrash.lks ${CMAKE_CURRENT_BINARY_DIR}/testcrash.lks COPYONLY)
0148
0149 cmake_language(CALL
0150 qt${QT_MAJOR_VERSION}_wrap_cpp
0151 test_desktopapp_SRCS
0152 testmainwindow.h
0153 )
0154
0155 macro(ADD_DESKTOP_TEST TEST_NAME FILE_NAME)
0156 add_executable(${TEST_NAME}
0157 ${test_desktopapp_SRCS}
0158 ${FILE_NAME}
0159 apptesting_fixture.cpp
0160 testmainwindow.cpp
0161 apptesting_fixture.h
0162 )
0163
0164 target_link_libraries(${TEST_NAME}
0165 Codethink::lvttst
0166 Codethink::lvttst_fixture_qt
0167 Codethink::lvttst_tmpdir
0168 codevis_lib
0169 ${SYSTEM_EXTRA_LIBRARIES}
0170 Qt::Test
0171 )
0172 add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
0173 endmacro()
0174
0175 ADD_DESKTOP_TEST(mainwindow_auto_add_edges_from_classes mainwindow_auto_add_edges_from_classes.t.cpp)
0176 ADD_DESKTOP_TEST(mainwindow_auto_add_edges_from_components mainwindow_auto_add_edges_from_components.t.cpp)
0177 ADD_DESKTOP_TEST(mainwindow_auto_add_edges_from_packages mainwindow_auto_add_edges_from_packages.t.cpp)
0178 ADD_DESKTOP_TEST(mainwindow_basic_application_workflow mainwindow_basic_application_workflow.t.cpp)
0179 ADD_DESKTOP_TEST(mainwindow_load_project_test mainwindow_load_test_crash.t.cpp)
0180 ADD_DESKTOP_TEST(mainwindow_show_error_on_add_edge_failure mainwindow_show_error_on_add_edge_failure.t.cpp)
0181 ADD_DESKTOP_TEST(mainwindow_test mainwindow.t.cpp)
0182 ADD_DESKTOP_TEST(mainwindow_test_autosave mainwindow_test_autosave.t.cpp)
0183 ADD_DESKTOP_TEST(mainwindow_test_tool_selection mainwindow_test_tool_selection.t.cpp)
0184
0185 # This test doesn't work on Qt5 because of Bad API'
0186 if (QT_MAJOR_VERSION STREQUAL "6")
0187 ADD_DESKTOP_TEST(mainwindow_test_element_move mainwindow_test_element_move.t.cpp)
0188 endif()
0189
0190 add_executable(test_projectsettingsdialog projectsettingsdialog.t.cpp)
0191 target_link_libraries(test_projectsettingsdialog
0192 Codethink::lvttst
0193 Codethink::lvttst_fixture_qt
0194 codevis_lib
0195 ${EXTRA_SYSTEM_LIBRARIES}
0196 Qt::Test
0197 )
0198 add_test(NAME test_projectsettingsdialog COMMAND test_projectsettingsdialog)
0199 endif()