build functions and QskQmlExportTargets.cmake file
This commit is contained in:
parent
48e3ecef04
commit
0670623fbd
@ -62,9 +62,18 @@ macro(qsk_setup_build)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(qsk_setup_install)
|
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)
|
string(TOLOWER "${PROJECT_NAME}" PACKAGE_DIR)
|
||||||
set(QSK_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_DIR}")
|
set(QSK_INSTALL_HEADERS ${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_DIR})
|
||||||
set(QSK_INSTALL_LIBS "${CMAKE_INSTALL_LIBDIR}/${PACKAGE_DIR}")
|
set(QSK_INSTALL_LIBS ${CMAKE_INSTALL_LIBDIR}/${PACKAGE_DIR})
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
@ -97,6 +106,32 @@ qsk_setup_install()
|
|||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(skins)
|
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)
|
if(BUILD_QML_EXPORT)
|
||||||
add_subdirectory(qmlexport)
|
add_subdirectory(qmlexport)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,2 +1 @@
|
|||||||
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake")
|
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})
|
target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|
||||||
endfunction()
|
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})
|
qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS})
|
||||||
|
|
||||||
target_link_libraries(${target} PRIVATE qskinny)
|
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)
|
set_target_properties(${target} PROPERTIES PUBLIC_HEADER QskQml.h)
|
||||||
|
|
||||||
if(BUILD_QSKDLL)
|
if(BUILD_QSKDLL)
|
||||||
@ -20,8 +21,26 @@ if(BUILD_QSKDLL)
|
|||||||
VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
|
VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_target_properties(${target} PROPERTIES FOLDER libs)
|
# packaging
|
||||||
|
set(PACKAGE_NAME QskQmlExport)
|
||||||
|
set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}")
|
||||||
|
|
||||||
install(TARGETS ${target}
|
set_target_properties(${target} PROPERTIES FOLDER libs)
|
||||||
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${target}"
|
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} )
|
VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
|
||||||
|
|
||||||
# packaging
|
# packaging
|
||||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
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)
|
|
||||||
|
|
||||||
|
# setup destination file paths for qskinny target
|
||||||
install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets
|
install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets
|
||||||
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
|
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
|
||||||
ARCHIVE 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}
|
INCLUDES DESTINATION ${QSK_INSTALL_HEADERS}
|
||||||
PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS})
|
PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS})
|
||||||
|
|
||||||
|
# export QSkinnyTargets namespace
|
||||||
export(EXPORT ${PACKAGE_NAME}Targets
|
export(EXPORT ${PACKAGE_NAME}Targets
|
||||||
NAMESPACE ${PACKAGE_NAMESPACE})
|
NAMESPACE ${PACKAGE_NAMESPACE})
|
||||||
|
|
||||||
configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake
|
# install QSkinnyTargets under QSkinny namespace
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake
|
|
||||||
COPYONLY)
|
|
||||||
|
|
||||||
install(EXPORT ${PACKAGE_NAME}Targets
|
install(EXPORT ${PACKAGE_NAME}Targets
|
||||||
FILE
|
FILE
|
||||||
${PACKAGE_NAME}Targets.cmake
|
${PACKAGE_NAME}Targets.cmake
|
||||||
@ -548,13 +538,3 @@ install(EXPORT ${PACKAGE_NAME}Targets
|
|||||||
${PACKAGE_NAMESPACE}
|
${PACKAGE_NAMESPACE}
|
||||||
DESTINATION
|
DESTINATION
|
||||||
${PACKAGE_LOCATION})
|
${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)
|
if(TARGET Qt::Svg)
|
||||||
add_subdirectory(svg2qvg)
|
add_subdirectory(svg2qvg)
|
||||||
endif()
|
qsk_update_package_config_file(QskTools)
|
||||||
|
endif()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user