cmake_minimum_required( VERSION 3.0 ) project( Redstart ) list( APPEND CMAKE_MODULE_PATH "$ENV{VISTA_CMAKE_COMMON}" ) include( VistaCommon ) set( CMAKE_AUTOMOC ON ) vista_use_package( ITAQtWidgets REQUIRED FIND_DEPENDENCIES ) vista_use_package( VABase REQUIRED FIND_DEPENDENCIES ) vista_use_package( VANet REQUIRED FIND_DEPENDENCIES ) vista_use_package( VACore REQUIRED FIND_DEPENDENCIES ) vista_use_package( ITADataSources REQUIRED FIND_DEPENDENCIES ) find_package( Qt5 REQUIRED COMPONENTS Core Gui Widgets ) # no vista cmake find # config if( NOT ITA_REDSTART_INSTALL_WITH_DLLS ) set( ITA_REDSTART_INSTALL_WITH_DLLS ON CACHE BOOL "Install Redstart with depending DLLs (use this switch with care)" ) endif( ) if( NOT ITA_REDSTART_DEFAULT_SERVER_ADDRESS ) set( ITA_REDSTART_DEFAULT_SERVER_ADDRESS "localhost" CACHE STRING "Default Redstart bind address" ) endif( ) if( NOT ITA_REDSTART_DEFAULT_SERVER_PORT ) set( ITA_REDSTART_DEFAULT_SERVER_PORT 12340 CACHE INT "Default Redstart server bind port" ) endif( ) # compiler if( ITA_ACOUSTIC_VISUALIZATION_BUILD_STATIC ) add_definitions( -DITA_QT_WIDGETS_STATIC ) endif() if( ITA_VA_BUILD_STATIC ) add_definitions( -DVABASE_STATIC -DVACORE_STATIC -DVANET_STATIC ) endif( ) if( ITA_CORE_LIBS_BUILD_STATIC ) add_definitions( -DITA_BASE_STATIC -DITA_DATA_SOURCES_STATIC ) endif( ) if( ITA_VISTA_BUILD_STATIC ) add_definitions( -DVISTABASE_STATIC -DVISTAINTERPROCCOMM_STATIC -DVISTAASPECTS_STATIC -DVISTATOOLS_STATIC -DVISTAMATH_STATIC ) if( WIN32 ) set( VISTAINTERPROCCOMM_ADDITIONAL_DEPENDENCIES Ws2_32 ) endif( ) endif( ) # preprocessor if( NOT WIN32 ) add_definitions( -std=gnu++11 ) endif( ) set( Redstart_Sources "src/main.cpp" "src/RedstartWindow.cpp" "src/RedstartWindow.h" "src/RedstartRunSimpleExample.h" "src/RedstartUtils.h" "src/RedstartSessionBinauralHeadphonesDialog.cpp" "src/RedstartSessionBinauralHeadphonesDialog.h" "src/RedstartSessionExperimentalTalkthroughDialog.cpp" "src/RedstartSessionExperimentalTalkthroughDialog.h" "src/RedstartSessionImportDialog.cpp" "src/RedstartSessionImportDialog.h" "src/RedstartSessionWizardDialog.cpp" "src/RedstartSessionWizardDialog.h" "src/RedstartSessionList.h" "src/RedstartSessionDetailsTreeView.h" ) set( Redstart_UIs "ui/RedstartWindow.ui" "ui/RedstartSessionBinauralHeadphonesDialog.ui" "ui/RedstartSessionExperimentalTalkthroughDialog.ui" "ui/RedstartSessionImportDialog.ui" "ui/RedstartSessionWizardDialog.ui" ) # Qt UI form compiler qt5_wrap_ui( "ui_RedstartWindow.h" "ui/RedstartWindow.ui" ) qt5_wrap_ui( "ui_RedstartSessionBinauralHeadphonesDialog.h" "ui/RedstartSessionBinauralHeadphonesDialog.ui" ) qt5_wrap_ui( "ui_RedstartSessionExperimentalTalkthroughDialog.h" "ui/RedstartSessionExperimentalTalkthroughDialog.ui" ) qt5_wrap_ui( "ui_RedstartSessionImportDialog.h" "ui/RedstartSessionImportDialog.ui" ) qt5_wrap_ui( "ui_RedstartSessionWizardDialog.h" "ui/RedstartSessionWizardDialog.ui" ) include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ) # Qt UI form compiler generates files into this folder # Qt resources #cmake_policy( SET CMP0071 NEW ) qt5_add_resources( VA_REDSTART_RESOURCES "res/QRedstart.qrc" OPTIONS -compress 3 ) include_directories( "src" ) add_executable( Redstart ${VA_REDSTART_RESOURCES} ${Redstart_Sources} ${Redstart_UIs} ) target_link_libraries( Redstart ${VISTA_USE_PACKAGE_LIBRARIES} ${VISTAINTERPROCCOMM_ADDITIONAL_DEPENDENCIES} Qt5::Widgets ) install( TARGETS Redstart RUNTIME DESTINATION "bin" ) vista_add_pathscript_dynamic_lib_path( "${_qt5Core_install_prefix}/bin/" ) vista_configure_app( Redstart ) vista_install( Redstart ) vista_create_default_info_file( Redstart ) set_property( TARGET Redstart PROPERTY FOLDER "VA/Apps" ) if( ITA_VA_INSTALL_WITH_DLLS OR ITA_REDSTART_INSTALL_WITH_DLLS ) vista_install_all_dlls( bin ) endif( ) # dev if( MSVC ) set( ITA_REDSTART_INCLUDE_EXTERNAL_MSVC_PROJECTS ON CACHE BOOL "If enabled, msvc projects of external vista packages will be included in the solution" ) if( ITA_REDSTART_INCLUDE_EXTERNAL_MSVC_PROJECTS AND NOT VA_COMMON_BUILD ) vista_add_external_msvc_project_of_package( VistaCoreLibs "VistaCoreLibs" DEPENDENT Redstart SILENT ) vista_add_external_msvc_project_of_package( ITACoreLibs "ITACoreLibs" DEPENDENT Redstart SILENT ) vista_add_external_msvc_project_of_package( ITAAcousticVisualization "ITAAcousticVisualization" DEPENDENT Redstart SILENT ) vista_add_external_msvc_project_of_package( VABase "VA" DEPENDENT Redstart SILENT ) vista_add_external_msvc_project_of_package( VACore "VA" DEPENDENT Redstart SILENT ) vista_add_external_msvc_project_of_package( VANet "VA" DEPENDENT Redstart SILENT ) endif( ) endif( ) # deploy if( WIN32 ) configure_file( "run_Redstart.bat.proto" "${CMAKE_CURRENT_SOURCE_DIR}/run_Redstart.bat" @ONLY ) install( FILES "run_Redstart.bat" DESTINATION "." ) # Qt specialty: copy Qt and plugin platform dlls that are loaded during execution from a fixed relative path install( FILES "${_qt5Core_install_prefix}/bin/Qt5Core.dll" DESTINATION "bin" ) install( FILES "${_qt5Core_install_prefix}/bin/Qt5Gui.dll" DESTINATION "bin" ) install( FILES "${_qt5Core_install_prefix}/bin/Qt5Widgets.dll" DESTINATION "bin" ) install( DIRECTORY "${_qt5Core_install_prefix}/plugins/platforms" DESTINATION "bin" FILES_MATCHING PATTERN "*.dll" ) else( ) configure_file( "run_Redstart.sh.proto" "${CMAKE_CURRENT_SOURCE_DIR}/run_Redstart.sh" @ONLY ) install( FILES "run_Redstart.sh" DESTINATION "." ) endif( )