forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -286,6 +286,14 @@ function(enable_pch target)
|
|||||||
endif()
|
endif()
|
||||||
endfunction()
|
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
|
# Public API functions
|
||||||
#
|
#
|
||||||
@@ -354,6 +362,7 @@ function(add_qtc_library name)
|
|||||||
set_property(SOURCE ${file} PROPERTY SKIP_AUTOMOC ON)
|
set_property(SOURCE ${file} PROPERTY SKIP_AUTOMOC ON)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
qtc_output_binary_dir(_output_binary_dir)
|
||||||
set_target_properties(${name} PROPERTIES
|
set_target_properties(${name} PROPERTIES
|
||||||
SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
|
SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
VERSION "${IDE_VERSION}"
|
VERSION "${IDE_VERSION}"
|
||||||
@@ -361,9 +370,9 @@ function(add_qtc_library name)
|
|||||||
VISIBILITY_INLINES_HIDDEN ON
|
VISIBILITY_INLINES_HIDDEN ON
|
||||||
BUILD_RPATH "${_LIB_RPATH}"
|
BUILD_RPATH "${_LIB_RPATH}"
|
||||||
INSTALL_RPATH "${_LIB_RPATH}"
|
INSTALL_RPATH "${_LIB_RPATH}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_BIN_PATH}"
|
RUNTIME_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_BIN_PATH}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_LIBRARY_PATH}"
|
LIBRARY_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}"
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_LIBRARY_PATH}"
|
ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}"
|
||||||
${_arg_PROPERTIES}
|
${_arg_PROPERTIES}
|
||||||
)
|
)
|
||||||
enable_pch(${name})
|
enable_pch(${name})
|
||||||
@@ -551,6 +560,7 @@ function(add_qtc_plugin target_name)
|
|||||||
set(plugin_dir "${_arg_PLUGIN_PATH}")
|
set(plugin_dir "${_arg_PLUGIN_PATH}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
qtc_output_binary_dir(_output_binary_dir)
|
||||||
set_target_properties(${target_name} PROPERTIES
|
set_target_properties(${target_name} PROPERTIES
|
||||||
SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
|
SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
CXX_VISIBILITY_PRESET hidden
|
CXX_VISIBILITY_PRESET hidden
|
||||||
@@ -559,9 +569,9 @@ function(add_qtc_plugin target_name)
|
|||||||
_arg_VERSION "${_arg_VERSION}"
|
_arg_VERSION "${_arg_VERSION}"
|
||||||
BUILD_RPATH "${_PLUGIN_RPATH}"
|
BUILD_RPATH "${_PLUGIN_RPATH}"
|
||||||
INSTALL_RPATH "${_PLUGIN_RPATH}"
|
INSTALL_RPATH "${_PLUGIN_RPATH}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${plugin_dir}"
|
LIBRARY_OUTPUT_DIRECTORY "${_output_binary_dir}/${plugin_dir}"
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${plugin_dir}"
|
ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${plugin_dir}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${plugin_dir}"
|
RUNTIME_OUTPUT_DIRECTORY "${_output_binary_dir}/${plugin_dir}"
|
||||||
OUTPUT_NAME "${name}"
|
OUTPUT_NAME "${name}"
|
||||||
${_arg_PROPERTIES}
|
${_arg_PROPERTIES}
|
||||||
)
|
)
|
||||||
@@ -697,10 +707,11 @@ function(add_qtc_executable name)
|
|||||||
target_include_directories("${name}" PRIVATE "${CMAKE_BINARY_DIR}/src" ${_arg_INCLUDES})
|
target_include_directories("${name}" PRIVATE "${CMAKE_BINARY_DIR}/src" ${_arg_INCLUDES})
|
||||||
target_compile_definitions("${name}" PRIVATE ${_arg_DEFINES} ${TEST_DEFINES} ${DEFAULT_DEFINES})
|
target_compile_definitions("${name}" PRIVATE ${_arg_DEFINES} ${TEST_DEFINES} ${DEFAULT_DEFINES})
|
||||||
target_link_libraries("${name}" PRIVATE ${_arg_DEPENDS} ${_TEST_DEPENDS})
|
target_link_libraries("${name}" PRIVATE ${_arg_DEPENDS} ${_TEST_DEPENDS})
|
||||||
|
qtc_output_binary_dir(_output_binary_dir)
|
||||||
set_target_properties("${name}" PROPERTIES
|
set_target_properties("${name}" PROPERTIES
|
||||||
BUILD_RPATH "${_RPATH_BASE}/${_RELATIVE_LIB_PATH}"
|
BUILD_RPATH "${_RPATH_BASE}/${_RELATIVE_LIB_PATH}"
|
||||||
INSTALL_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}
|
${_arg_PROPERTIES}
|
||||||
)
|
)
|
||||||
enable_pch(${name})
|
enable_pch(${name})
|
||||||
|
Reference in New Issue
Block a user