build functions and QskQmlExportTargets.cmake file
This commit is contained in:
parent
48e3ecef04
commit
0670623fbd
@ -62,9 +62,18 @@ macro(qsk_setup_build)
|
||||
endmacro()
|
||||
|
||||
macro(qsk_setup_install)
|
||||
|
||||
# package vars
|
||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
|
||||
set(PACKAGE_NAMESPACE ${PROJECT_NAME}::)
|
||||
set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
|
||||
|
||||
# install paths for headers and libraries
|
||||
string(TOLOWER "${PROJECT_NAME}" PACKAGE_DIR)
|
||||
set(QSK_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_DIR}")
|
||||
set(QSK_INSTALL_LIBS "${CMAKE_INSTALL_LIBDIR}/${PACKAGE_DIR}")
|
||||
set(QSK_INSTALL_HEADERS ${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_DIR})
|
||||
set(QSK_INSTALL_LIBS ${CMAKE_INSTALL_LIBDIR}/${PACKAGE_DIR})
|
||||
|
||||
endmacro()
|
||||
|
||||
############################################################################
|
||||
@ -97,6 +106,32 @@ qsk_setup_install()
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(skins)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
# write QSkinnyConfigVersion.cmake file for cmake import
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
VERSION ${PACKAGE_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
|
||||
# Copy QSkinnyConfig.cmake to build dir
|
||||
configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake
|
||||
${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}Config.cmake
|
||||
COPYONLY)
|
||||
|
||||
# install QSkinnyConfig.cmake and QSkinnyConfigVersion.cmake
|
||||
# and QskTools.cmake file to lib/cmake/QSkinny directory
|
||||
install(
|
||||
FILES
|
||||
${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}Config.cmake
|
||||
${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
${QSK_CMAKE_DIR}/QskTools.cmake
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION}
|
||||
COMPONENT
|
||||
Devel)
|
||||
|
||||
# Build other libraries
|
||||
if(BUILD_QML_EXPORT)
|
||||
add_subdirectory(qmlexport)
|
||||
endif()
|
||||
|
@ -1,2 +1 @@
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/QskTools.cmake")
|
@ -99,3 +99,11 @@ function(qsk_add_example target)
|
||||
target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
endfunction()
|
||||
|
||||
function(qsk_update_package_config_file target)
|
||||
|
||||
file(APPEND
|
||||
${CMAKE_BINARY_DIR}/_QSkinny/QSkinnyConfig.cmake
|
||||
"include(\"\${CMAKE_CURRENT_LIST_DIR}/${target}.cmake\")\n")
|
||||
|
||||
endfunction()
|
||||
|
@ -10,7 +10,8 @@ set(target qskqmlexport)
|
||||
qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS})
|
||||
|
||||
target_link_libraries(${target} PRIVATE qskinny)
|
||||
target_include_directories(${target} PUBLIC ${CMAKE_CURRENT_LIST_DIR})
|
||||
target_include_directories(${target} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>)
|
||||
set_target_properties(${target} PROPERTIES PUBLIC_HEADER QskQml.h)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
@ -20,8 +21,26 @@ if(BUILD_QSKDLL)
|
||||
VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
|
||||
endif()
|
||||
|
||||
set_target_properties(${target} PROPERTIES FOLDER libs)
|
||||
# packaging
|
||||
set(PACKAGE_NAME QskQmlExport)
|
||||
set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}")
|
||||
|
||||
install(TARGETS ${target}
|
||||
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${target}"
|
||||
)
|
||||
set_target_properties(${target} PROPERTIES FOLDER libs)
|
||||
set_target_properties(${target} PROPERTIES EXPORT_NAME ${PACKAGE_NAME})
|
||||
|
||||
install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets
|
||||
INCLUDES DESTINATION ${QSKQE_INSTALL_HEADERS}
|
||||
PUBLIC_HEADER DESTINATION ${QSKQE_INSTALL_HEADERS})
|
||||
|
||||
export(EXPORT ${PACKAGE_NAME}Targets
|
||||
NAMESPACE ${PACKAGE_NAMESPACE})
|
||||
|
||||
install(EXPORT ${PACKAGE_NAME}Targets
|
||||
FILE
|
||||
${PACKAGE_NAME}Targets.cmake
|
||||
NAMESPACE
|
||||
${PACKAGE_NAMESPACE}
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION})
|
||||
|
||||
qsk_update_package_config_file(${PACKAGE_NAME}Targets)
|
||||
|
@ -516,17 +516,9 @@ set_target_properties(${target} PROPERTIES
|
||||
VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
|
||||
|
||||
# packaging
|
||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
|
||||
set(PACKAGE_NAMESPACE ${PROJECT_NAME}::)
|
||||
set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
VERSION ${PACKAGE_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
|
||||
# setup destination file paths for qskinny target
|
||||
install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets
|
||||
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
|
||||
ARCHIVE DESTINATION ${QSK_INSTALL_LIBS}
|
||||
@ -534,13 +526,11 @@ install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets
|
||||
INCLUDES DESTINATION ${QSK_INSTALL_HEADERS}
|
||||
PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS})
|
||||
|
||||
# export QSkinnyTargets namespace
|
||||
export(EXPORT ${PACKAGE_NAME}Targets
|
||||
NAMESPACE ${PACKAGE_NAMESPACE})
|
||||
|
||||
configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake
|
||||
COPYONLY)
|
||||
|
||||
# install QSkinnyTargets under QSkinny namespace
|
||||
install(EXPORT ${PACKAGE_NAME}Targets
|
||||
FILE
|
||||
${PACKAGE_NAME}Targets.cmake
|
||||
@ -548,13 +538,3 @@ install(EXPORT ${PACKAGE_NAME}Targets
|
||||
${PACKAGE_NAMESPACE}
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION})
|
||||
|
||||
install(
|
||||
FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
${QSK_CMAKE_DIR}/QskTools.cmake
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION}
|
||||
COMPONENT
|
||||
Devel)
|
||||
|
@ -1,3 +1,4 @@
|
||||
if(TARGET Qt::Svg)
|
||||
add_subdirectory(svg2qvg)
|
||||
endif()
|
||||
qsk_update_package_config_file(QskTools)
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user