diff --git a/CMakeLists.txt b/CMakeLists.txt index dbecc6c1c9..9f1465c721 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -253,8 +253,8 @@ if( NOT ${QT_VERSION_MAJOR} EQUAL ${REQUIRED_QT_LTS_VERSION_MAJOR} endif() set(QT_DIR ${_qt5Core_install_prefix}) -set(QT_BINARY_DIR ${QT_DIR}/bin) -set(QT_LIBRARY_DIR ${QT_DIR}/lib) +set(QT_BINARIES_DIR ${QT_DIR}/bin) +set(QT_LIBRARIES_DIR ${QT_DIR}/lib) set(QT_PLUGINS_DIR ${QT_DIR}/plugins) get_target_property(QMAKE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) @@ -600,7 +600,7 @@ elseif(NOT WIN32) # within Qt Creator... endif() - set(LINK_FLAGS_PROPERTIES "${LINK_FLAGS_PROPERTIES} -Wl,-rpath-link,${QT_LIBRARY_DIR} ${LINK_RPATH_FLAG}") + set(LINK_FLAGS_PROPERTIES "${LINK_FLAGS_PROPERTIES} -Wl,-rpath-link,${QT_LIBRARIES_DIR} ${LINK_RPATH_FLAG}") endif() # Show what we are about to build @@ -1268,8 +1268,8 @@ else() set(ORIG_MESA_FILENAME opengl32sw.dll) set(DEST_MESA_FILENAME opengl32.dll) - copy_file_to_build_dir(DIRECT ${QT_BINARY_DIR} . ${ORIG_MESA_FILENAME} ${DEST_MESA_FILENAME}) - copy_file_to_build_dir(DIRECT ${QT_BINARY_DIR} bin ${ORIG_MESA_FILENAME} ${DEST_MESA_FILENAME}) + copy_file_to_build_dir(DIRECT ${QT_BINARIES_DIR} . ${ORIG_MESA_FILENAME} ${DEST_MESA_FILENAME}) + copy_file_to_build_dir(DIRECT ${QT_BINARIES_DIR} bin ${ORIG_MESA_FILENAME} ${DEST_MESA_FILENAME}) endif() endif() @@ -1322,19 +1322,19 @@ if(WIN32) install(FILES ${ADDITIONAL_FILES} DESTINATION bin) - install(FILES ${QT_BINARY_DIR}/${ORIG_MESA_FILENAME} + install(FILES ${QT_BINARIES_DIR}/${ORIG_MESA_FILENAME} DESTINATION bin RENAME ${DEST_MESA_FILENAME}) # Qt libraries required by OpenCOR foreach(QT_LIBRARY ${QT_LIBRARIES}) - windows_deploy_qt_library(Qt5${QT_LIBRARY}) + windows_deploy_qt_library(${QT_LIBRARY}) endforeach() if(USE_PREBUILT_QTWEBKIT_PACKAGE) - foreach(QT_LIBRARY icudt icuin icuuc) - windows_deploy_qt_library(${QT_LIBRARY}${ICU_VERSION}) + foreach(ICU_LIBRARY dt in uc) + windows_deploy_icu_library(${ICU_LIBRARY}) endforeach() endif() diff --git a/cmake/common.cmake b/cmake/common.cmake index 28e91171bf..1feb1d34dc 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -103,14 +103,14 @@ macro(update_language_files TARGET_NAME) set(QM_FILE ${PROJECT_BUILD_DIR}/${LANGUAGE_FILE}.qm) if(EXISTS ${PROJECT_SOURCE_DIR}/${TS_FILE}) - execute_process(COMMAND ${QT_BINARY_DIR}/lupdate -no-obsolete ${INPUT_FILES} - -ts ${TS_FILE} - -I ${CMAKE_SOURCE_DIR}/src/misc + execute_process(COMMAND ${QT_BINARIES_DIR}/lupdate -no-obsolete ${INPUT_FILES} + -ts ${TS_FILE} + -I ${CMAKE_SOURCE_DIR}/src/misc WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_QUIET ERROR_QUIET) - execute_process(COMMAND ${QT_BINARY_DIR}/lrelease ${PROJECT_SOURCE_DIR}/${TS_FILE} - -qm ${QM_FILE} + execute_process(COMMAND ${QT_BINARIES_DIR}/lrelease ${PROJECT_SOURCE_DIR}/${TS_FILE} + -qm ${QM_FILE} OUTPUT_QUIET) track_files(${QM_FILE}) @@ -624,53 +624,41 @@ endmacro() #=============================================================================== -macro(windows_deploy_qt_library LIBRARY_NAME) - # Copy the Qt library to both the build and build/bin folders, so we can +macro(windows_deploy_binary_file DIRNAME FILENAME) + # Copy the binary file to both the build and build/bin folders, so we can # test things both from within Qt Creator and without first having to deploy # OpenCOR - if( "${LIBRARY_NAME}" STREQUAL "Qt5WebKit" - OR "${LIBRARY_NAME}" STREQUAL "Qt5WebKitWidgets" - OR "${LIBRARY_NAME}" STREQUAL "icudt${ICU_VERSION}" - OR "${LIBRARY_NAME}" STREQUAL "icuin${ICU_VERSION}" - OR "${LIBRARY_NAME}" STREQUAL "icuuc${ICU_VERSION}") - set(REAL_QT_BINARY_DIR ${QTWEBKIT_BINARIES_DIR}) - else() - set(REAL_QT_BINARY_DIR ${QT_BINARY_DIR}) - endif() + copy_file_to_build_dir(DIRECT ${DIRNAME} . ${FILENAME}) + copy_file_to_build_dir(DIRECT ${DIRNAME} bin ${FILENAME}) - set(LIBRARY_RELEASE_FILENAME ${CMAKE_SHARED_LIBRARY_PREFIX}${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) + # Deploy the binary file - if("${LIBRARY_NAME}" STREQUAL "icudt${ICU_VERSION}") - set(LIBRARY_DEBUG_FILENAME ${CMAKE_SHARED_LIBRARY_PREFIX}icudtd${ICU_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}) - elseif("${LIBRARY_NAME}" STREQUAL "icuin${ICU_VERSION}") - set(LIBRARY_DEBUG_FILENAME ${CMAKE_SHARED_LIBRARY_PREFIX}icuind${ICU_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}) - elseif("${LIBRARY_NAME}" STREQUAL "icuuc${ICU_VERSION}") - set(LIBRARY_DEBUG_FILENAME ${CMAKE_SHARED_LIBRARY_PREFIX}icuucd${ICU_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}) - else() - set(LIBRARY_DEBUG_FILENAME ${CMAKE_SHARED_LIBRARY_PREFIX}${LIBRARY_NAME}d${CMAKE_SHARED_LIBRARY_SUFFIX}) - endif() + install(FILES ${DIRNAME}/${FILENAME} + DESTINATION bin) +endmacro() - if(NOT EXISTS ${REAL_QT_BINARY_DIR}/${LIBRARY_DEBUG_FILENAME}) - # No debug version of the Qt library exists, so use its release version - # instead +#=============================================================================== - set(LIBRARY_DEBUG_FILENAME ${LIBRARY_RELEASE_FILENAME}) - endif() +macro(windows_deploy_qt_library LIBRARY_NAME) + # Deploy the Qt library - if(RELEASE_MODE) - set(LIBRARY_FILENAME ${LIBRARY_RELEASE_FILENAME}) + if( "${LIBRARY_NAME}" STREQUAL "WebKit" + OR "${LIBRARY_NAME}" STREQUAL "WebKitWidgets") + set(BINARIES_DIR ${QTWEBKIT_BINARIES_DIR}) else() - set(LIBRARY_FILENAME ${LIBRARY_DEBUG_FILENAME}) + set(BINARIES_DIR ${QT_BINARIES_DIR}) endif() - copy_file_to_build_dir(DIRECT ${REAL_QT_BINARY_DIR} . ${LIBRARY_FILENAME}) - copy_file_to_build_dir(DIRECT ${REAL_QT_BINARY_DIR} bin ${LIBRARY_FILENAME}) + windows_deploy_binary_file(${BINARIES_DIR} Qt5${LIBRARY_NAME}${DEBUG_TAG}${CMAKE_SHARED_LIBRARY_SUFFIX}) +endmacro() - # Deploy the Qt library +#=============================================================================== - install(FILES ${REAL_QT_BINARY_DIR}/${LIBRARY_FILENAME} - DESTINATION bin) +macro(windows_deploy_icu_library LIBRARY_NAME) + # Deploy the ICU library + + windows_deploy_binary_file(${QTWEBKIT_BINARIES_DIR} icu${LIBRARY_NAME}${DEBUG_TAG}${CMAKE_SHARED_LIBRARY_SUFFIX}) endmacro() #=============================================================================== @@ -681,7 +669,7 @@ macro(windows_deploy_qt_plugins PLUGIN_CATEGORY) set(PLUGIN_ORIG_DIRNAME ${QT_PLUGINS_DIR}/${PLUGIN_CATEGORY}) set(PLUGIN_DEST_DIRNAME plugins/${PLUGIN_CATEGORY}) - set(PLUGIN_FILENAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${DEBUG_TAG}${CMAKE_SHARED_LIBRARY_SUFFIX}) + set(PLUGIN_FILENAME ${PLUGIN_NAME}${DEBUG_TAG}${CMAKE_SHARED_LIBRARY_SUFFIX}) copy_file_to_build_dir(DIRECT ${PLUGIN_ORIG_DIRNAME} ${PLUGIN_DEST_DIRNAME} ${PLUGIN_FILENAME}) @@ -744,7 +732,7 @@ macro(linux_deploy_qt_library LIBRARY_NAME) OR "${LIBRARY_NAME}" STREQUAL "${WEBKITWIDGETS}") set(ORIG_DIRNAME ${QTWEBKIT_LIBRARIES_DIR}) else() - set(ORIG_DIRNAME ${QT_LIBRARY_DIR}) + set(ORIG_DIRNAME ${QT_LIBRARIES_DIR}) endif() linux_deploy_binary_file(DIRECT ${ORIG_DIRNAME} lib ${CMAKE_SHARED_LIBRARY_PREFIX}Qt${QT_VERSION_MAJOR}${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${QT_VERSION_MAJOR}) @@ -819,12 +807,12 @@ macro(macos_deploy_qt_library LIBRARY_NAME) if( "${QT_LIBRARY_NAME}" STREQUAL "Qt${WEBKIT}" OR "${QT_LIBRARY_NAME}" STREQUAL "Qt${WEBKITWIDGETS}") - set(REAL_QT_LIBRARY_DIR ${QTWEBKIT_LIBRARIES_DIR}) + set(REAL_QT_LIBRARIES_DIR ${QTWEBKIT_LIBRARIES_DIR}) else() - set(REAL_QT_LIBRARY_DIR ${QT_LIBRARY_DIR}) + set(REAL_QT_LIBRARIES_DIR ${QT_LIBRARIES_DIR}) endif() - macos_deploy_qt_file(${REAL_QT_LIBRARY_DIR}/${QT_FRAMEWORK_DIR} + macos_deploy_qt_file(${REAL_QT_LIBRARIES_DIR}/${QT_FRAMEWORK_DIR} ${PROJECT_BUILD_DIR}/${CMAKE_PROJECT_NAME}.app/Contents/Frameworks/${QT_FRAMEWORK_DIR} ${QT_LIBRARY_NAME}) endmacro() diff --git a/src/plugins/miscellaneous/HelpWindow/CMakeLists.txt b/src/plugins/miscellaneous/HelpWindow/CMakeLists.txt index d09d2b054e..711cf7077c 100644 --- a/src/plugins/miscellaneous/HelpWindow/CMakeLists.txt +++ b/src/plugins/miscellaneous/HelpWindow/CMakeLists.txt @@ -8,8 +8,8 @@ add_dependencies(GenerateQtHelpFiles ${DOCUMENTATION_BUILD_TARGET}) add_custom_command(TARGET GenerateQtHelpFiles COMMAND ${SILENTRUN} - ${QT_BINARY_DIR}/qhelpgenerator ${PROJECT_BUILD_DIR}/doc/${CMAKE_PROJECT_NAME}.qhcp - -o ${PROJECT_BUILD_DIR}/${CMAKE_PROJECT_NAME}.qhc) + ${QT_BINARIES_DIR}/qhelpgenerator ${PROJECT_BUILD_DIR}/doc/${CMAKE_PROJECT_NAME}.qhcp + -o ${PROJECT_BUILD_DIR}/${CMAKE_PROJECT_NAME}.qhc) track_files( ${PROJECT_BUILD_DIR}/${CMAKE_PROJECT_NAME}.qch diff --git a/src/plugins/thirdParty/QScintilla/CMakeLists.txt b/src/plugins/thirdParty/QScintilla/CMakeLists.txt index 4a14d1f69d..585b54b7a0 100644 --- a/src/plugins/thirdParty/QScintilla/CMakeLists.txt +++ b/src/plugins/thirdParty/QScintilla/CMakeLists.txt @@ -138,7 +138,7 @@ else() if(APPLE) ExternalProject_Add_Step(${PACKAGE_BUILD} fixRpath - COMMAND install_name_tool -delete_rpath ${QT_LIBRARY_DIR} ${SHARED_LIBRARY} + COMMAND install_name_tool -delete_rpath ${QT_LIBRARIES_DIR} ${SHARED_LIBRARY} WORKING_DIRECTORY ${EXTERNAL_BINARIES_DIR} DEPENDEES copyLibrary) else() diff --git a/src/plugins/thirdParty/Qwt/CMakeLists.txt b/src/plugins/thirdParty/Qwt/CMakeLists.txt index 469461c008..9a91b3bb3c 100644 --- a/src/plugins/thirdParty/Qwt/CMakeLists.txt +++ b/src/plugins/thirdParty/Qwt/CMakeLists.txt @@ -159,8 +159,8 @@ else() if(APPLE) ExternalProject_Add_Step(${PACKAGE_BUILD} fixRpath - COMMAND install_name_tool -delete_rpath ${QT_LIBRARY_DIR} ${QWT_SHARED_LIBRARY} - COMMAND install_name_tool -delete_rpath ${QT_LIBRARY_DIR} ${QWTMATHML_SHARED_LIBRARY} + COMMAND install_name_tool -delete_rpath ${QT_LIBRARIES_DIR} ${QWT_SHARED_LIBRARY} + COMMAND install_name_tool -delete_rpath ${QT_LIBRARIES_DIR} ${QWTMATHML_SHARED_LIBRARY} COMMAND install_name_tool -change ${QWT_SHARED_LIBRARY} @rpath/${QWT_SHARED_LIBRARY} ${QWTMATHML_SHARED_LIBRARY}