cmake_minimum_required(VERSION 3.1) project (GUI CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) find_package(VTK COMPONENTS vtkGUISupportQt NO_MODULE) find_package(Qt5 COMPONENTS Core Widgets Network WebSockets REQUIRED) if(${ENABLE_MPI}) find_package(MPI REQUIRED) endif(${ENABLE_MPI}) include(${VTK_USE_FILE}) get_target_property(QtCore_location Qt5::Core LOCATION) get_target_property(QtWidgets_location Qt5::Widgets LOCATION) get_target_property(QtNetwork_location Qt5::Network LOCATION) get_target_property(QtWebSockets_location Qt5::WebSockets LOCATION) get_target_property(QT5_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION) get_filename_component(QT5_WINDEPLOYQT_PATH ${QT5_QMAKE_EXECUTABLE} PATH) set(QT5_WINDEPLOYQT_EXECUTABLE "${QT5_WINDEPLOYQT_PATH}/windeployqt.exe") set(QT5_MACDEPLOYQT_EXECUTABLE "${QT5_WINDEPLOYQT_PATH}/macdeployqt") include_directories("${COMMON_INCLUDE_DIR}" services/include include resources ${QtCore_location} ${QtWidgets_location} ${QtNetwork_location} ${QtWebSockets_location}) include_directories(${VKT_INCLUDE_DIR} ${MPI_INCLUDE_PATH}) file(GLOB_RECURSE headers include/*.hpp include/*.tpp) file(GLOB_RECURSE sources src/*.cpp) file(GLOB_RECURSE services_headers services/include/*.h* services/include/*.tpp) file(GLOB_RECURSE services_sources services/src/*.c*) file(GLOB_RECURSE ui_files resources/ui/*.ui) file(GLOB_RECURSE qrc_files resources/*.qrc) if (APPLE) set(ICON_NAME "appIcon") set(ICON_PATH "${CMAKE_CURRENT_SOURCE_DIR}/resources/icons/${ICON_NAME}.icns") endif() qt5_wrap_ui(ui_sources "${ui_files}") qt5_add_resources(qrc_resources "${qrc_files}") if (APPLE) set_source_files_properties("${ICON_PATH}" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) set_source_files_properties("${VTK_LIBRARIES}" PROPERTIES MACOSX_PACKAGE_LOCATION Resources/vtk) endif() add_executable(GUI MACOSX_BUNDLE ${headers} ${sources} ${services_headers} ${services_sources} ${ui_sources} ${qrc_resources} ${ICON_PATH}) set_target_properties(GUI PROPERTIES CXX_STANDARD 14 CXX_STANDARD_REQUIRED YES CXX_EXTENSIONS NO MACOSX_BUNDLE_ICON_FILE ${ICON_NAME} MACOSX_BUNDLE_GUI_IDENTIFIER "crafpack.TISSU" MACOSX_BUNDLE_BUNDLE_NAME "TISSU" BUILD_WITH_INSTALL_RPATH 1) target_link_libraries(GUI Qt5::Widgets Qt5::Network Qt5::WebSockets ${VTK_LIBRARIES} ${MPI_LIBRARIES}) if(${ENABLE_MPI}) target_compile_definitions(GUI PRIVATE "-DENABLE_MPI") endif() add_custom_command(TARGET GUI POST_BUILD COMMAND ${QT5_MACDEPLOYQT_EXECUTABLE} ARGS ${CMAKE_CURRENT_BINARY_DIR}/GUI.app )