aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-08-19 11:10:20 +0200
committerEike Ziller <eike.ziller@qt.io>2019-08-19 12:11:10 +0000
commita1d48830b1536d4c19605da3748fc8fc9ad591ff (patch)
treed4ecdf26f7ec5199358ba4bffd7cd990e5776152 /cmake
parent093d8100b7d0af5968fcb6c8d9d71f15ecafa814 (diff)
CMake build: Make it possible to put plugins into Qt Creator build
In the super repository builds we want all plugins to end up at a single place, so running the build result includes all plugins, even without an explicit install. With this patch we can set QTC_MERGE_BINARY_DIR in the super CMakeLists.txt to achieve that. Change-Id: I8b590e5a521a06aa5a8f00ef0e60f5c3b4349ee2 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtCreatorAPI.cmake25
1 files changed, 18 insertions, 7 deletions
diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake
index 6b1a67f070..13ff1970d9 100644
--- a/cmake/QtCreatorAPI.cmake
+++ b/cmake/QtCreatorAPI.cmake
@@ -286,6 +286,14 @@ function(enable_pch target)
endif()
endfunction()
+function(qtc_output_binary_dir varName)
+ if (QTC_MERGE_BINARY_DIR)
+ set(${varName} ${QtCreator_BINARY_DIR} PARENT_SCOPE)
+ else()
+ set(${varName} ${PROJECT_BINARY_DIR} PARENT_SCOPE)
+ endif()
+endfunction()
+
#
# Public API functions
#
@@ -354,6 +362,7 @@ function(add_qtc_library name)
set_property(SOURCE ${file} PROPERTY SKIP_AUTOMOC ON)
endforeach()
+ qtc_output_binary_dir(_output_binary_dir)
set_target_properties(${name} PROPERTIES
SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
VERSION "${IDE_VERSION}"
@@ -361,9 +370,9 @@ function(add_qtc_library name)
VISIBILITY_INLINES_HIDDEN ON
BUILD_RPATH "${_LIB_RPATH}"
INSTALL_RPATH "${_LIB_RPATH}"
- RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_BIN_PATH}"
- LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_LIBRARY_PATH}"
- ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_LIBRARY_PATH}"
+ RUNTIME_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_BIN_PATH}"
+ LIBRARY_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}"
+ ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}"
${_arg_PROPERTIES}
)
enable_pch(${name})
@@ -551,6 +560,7 @@ function(add_qtc_plugin target_name)
set(plugin_dir "${_arg_PLUGIN_PATH}")
endif()
+ qtc_output_binary_dir(_output_binary_dir)
set_target_properties(${target_name} PROPERTIES
SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
CXX_VISIBILITY_PRESET hidden
@@ -559,9 +569,9 @@ function(add_qtc_plugin target_name)
_arg_VERSION "${_arg_VERSION}"
BUILD_RPATH "${_PLUGIN_RPATH}"
INSTALL_RPATH "${_PLUGIN_RPATH}"
- LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${plugin_dir}"
- ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${plugin_dir}"
- RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${plugin_dir}"
+ LIBRARY_OUTPUT_DIRECTORY "${_output_binary_dir}/${plugin_dir}"
+ ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${plugin_dir}"
+ RUNTIME_OUTPUT_DIRECTORY "${_output_binary_dir}/${plugin_dir}"
OUTPUT_NAME "${name}"
${_arg_PROPERTIES}
)
@@ -697,10 +707,11 @@ function(add_qtc_executable name)
target_include_directories("${name}" PRIVATE "${CMAKE_BINARY_DIR}/src" ${_arg_INCLUDES})
target_compile_definitions("${name}" PRIVATE ${_arg_DEFINES} ${TEST_DEFINES} ${DEFAULT_DEFINES})
target_link_libraries("${name}" PRIVATE ${_arg_DEPENDS} ${_TEST_DEPENDS})
+ qtc_output_binary_dir(_output_binary_dir)
set_target_properties("${name}" PROPERTIES
BUILD_RPATH "${_RPATH_BASE}/${_RELATIVE_LIB_PATH}"
INSTALL_RPATH "${_RPATH_BASE}/${_RELATIVE_LIB_PATH}"
- RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${_DESTINATION}"
+ RUNTIME_OUTPUT_DIRECTORY "${_output_binary_dir}/${_DESTINATION}"
${_arg_PROPERTIES}
)
enable_pch(${name})