new "qt_generate_export_header" macro

This commit is contained in:
2020-08-21 22:13:06 +03:00
parent aa009c36b0
commit 9f84e5c3df
5 changed files with 22 additions and 15 deletions

2
pip

Submodule pip updated: cc580d9385...6b70045914

View File

@@ -4,17 +4,6 @@ macro(_qt_install _TARGET IS_APP _DIR _HDR_VAR _QM_FILES)
endmacro() endmacro()
macro(_qt_export_header NAME)
qt_get_target(${NAME} _some_target)
qt_get_target(${NAME} _targets)
foreach(_t ${_targets})
set_target_properties(${_t} PROPERTIES DEFINE_SYMBOL ${NAME}_EXPORTS)
endforeach()
set_target_properties(${_some_target} PROPERTIES DEFINE_SYMBOL ${NAME}_EXPORTS)
generate_export_header(${_some_target} BASE_NAME "${NAME}")
endmacro()
macro(_qt_plugin NAME _MODULES _LIBS) macro(_qt_plugin NAME _MODULES _LIBS)
if (NOT STATIC_LIB) if (NOT STATIC_LIB)
if(DESIGNER_PLUGINS) if(DESIGNER_PLUGINS)
@@ -66,7 +55,7 @@ macro(_qt_project NAME IS_APP DOMAIN _MODULES _LIBS)
if(NOT STATIC_LIB) if(NOT STATIC_LIB)
qt_target_compile_definitions(${PROJ_NAME} PRIVATE ${DOMAIN}_SHARED_DEFINE) qt_target_compile_definitions(${PROJ_NAME} PRIVATE ${DOMAIN}_SHARED_DEFINE)
endif() endif()
_qt_export_header(${PROJ_NAME}) qt_generate_export_header(${PROJ_NAME})
list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJ_NAME}_export.h") list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJ_NAME}_export.h")
endif() endif()
qt_target_link_libraries(${PROJ_NAME} ${_LIBS}) qt_target_link_libraries(${PROJ_NAME} ${_LIBS})

View File

@@ -118,6 +118,13 @@ qt_get_targets(<name> <var>)
Write all real <name> Qt target names to <var> Write all real <name> Qt target names to <var>
qt_generate_export_header(<name> ...)
Call generate_export_header on Qt multitarget
]] ]]
@@ -791,3 +798,14 @@ macro(qt_get_targets _NAME _OUT)
endif() endif()
endforeach() endforeach()
endmacro() endmacro()
macro(qt_generate_export_header _NAME)
qt_get_target(${_NAME} _some_target)
qt_get_target(${_NAME} _targets)
foreach(_t ${_targets})
set_target_properties(${_t} PROPERTIES DEFINE_SYMBOL ${_NAME}_EXPORTS)
endforeach()
set_target_properties(${_some_target} PROPERTIES DEFINE_SYMBOL ${_NAME}_EXPORTS)
generate_export_header(${_some_target} BASE_NAME "${_NAME}" ${ARGN})
endmacro()

View File

@@ -32,7 +32,7 @@ else()
INFO "QGLEngine core library") INFO "QGLEngine core library")
make_rc(qglengine_core _RC) make_rc(qglengine_core _RC)
qt_add_library(qglengine_core SHARED out_CPP ${_RC}) qt_add_library(qglengine_core SHARED out_CPP ${_RC})
_qt_export_header(qglengine_core) qt_generate_export_header(qglengine_core)
list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/qglengine_core_export.h") list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/qglengine_core_export.h")
qt_target_include_directories(qglengine_core PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core") qt_target_include_directories(qglengine_core PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core")
qt_target_link_libraries(qglengine_core qad_utils qad_widgets assimp ${OPENGL_LIBRARIES}) qt_target_link_libraries(qglengine_core qad_utils qad_widgets assimp ${OPENGL_LIBRARIES})

View File

@@ -16,7 +16,7 @@ set_deploy_property(${PROJECT_NAME} SHARED
INFO "QGLEngine widgets library") INFO "QGLEngine widgets library")
make_rc(${PROJECT_NAME} _RC) make_rc(${PROJECT_NAME} _RC)
qt_add_library(${PROJECT_NAME} SHARED out_CPP ${_RC}) qt_add_library(${PROJECT_NAME} SHARED out_CPP ${_RC})
_qt_export_header(${PROJECT_NAME}) qt_generate_export_header(${PROJECT_NAME})
list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h") list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h")
qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets qglengine_core) qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets qglengine_core)
qt_target_include_directories(${PROJECT_NAME} PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}/../" "${CMAKE_CURRENT_SOURCE_DIR}/../core") qt_target_include_directories(${PROJECT_NAME} PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}/../" "${CMAKE_CURRENT_SOURCE_DIR}/../core")