diff options
Diffstat (limited to 'sources/shiboken6/generator/CMakeLists.txt')
-rw-r--r-- | sources/shiboken6/generator/CMakeLists.txt | 78 |
1 files changed, 68 insertions, 10 deletions
diff --git a/sources/shiboken6/generator/CMakeLists.txt b/sources/shiboken6/generator/CMakeLists.txt index 0296138e5..aebe2cd5e 100644 --- a/sources/shiboken6/generator/CMakeLists.txt +++ b/sources/shiboken6/generator/CMakeLists.txt @@ -1,17 +1,46 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + project(shibokengenerator) +set(package_name "Shiboken6Tools") + +set(CMAKE_AUTOMOC ON) + +if(NOT (Qt${QT_MAJOR_VERSION}Core_FOUND AND Python_Interpreter_FOUND)) + message(WARNING "Some dependencies were not found: shiboken6 generator compilation disabled!") + return() +endif() set(shiboken6_SRC -generator.cpp -shiboken/cppgenerator.cpp -shiboken/headergenerator.cpp -shiboken/overloaddata.cpp -shiboken/shibokengenerator.cpp +defaultvalue.cpp defaultvalue.h +generator.cpp generator.h +generatorcontext.cpp generatorcontext.h main.cpp +shiboken/configurablescope.h +shiboken/cppgenerator.cpp shiboken/cppgenerator.h +shiboken/cppgenerator_container.cpp +shiboken/cppgenerator_smartpointer.cpp +shiboken/ctypenames.h +shiboken/generatorargument.cpp shiboken/generatorargument.h shiboken/generatorstrings.h +shiboken/headergenerator.cpp shiboken/headergenerator.h +shiboken/overloaddata.cpp shiboken/overloaddata.h +shiboken/pytypenames.h +shiboken/shibokengenerator.cpp shiboken/shibokengenerator.h ) +find_libclang() + +if(${STANDALONE}) + list(APPEND CMAKE_INSTALL_RPATH ${base}/Qt/lib) +else() + list(APPEND CMAKE_INSTALL_RPATH ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS} + ${libclang_lib_dir}) +endif() + add_executable(shiboken6 ${shiboken6_SRC}) add_executable(Shiboken6::shiboken6 ALIAS shiboken6) add_dependencies(shiboken6 apiextractor) + set_target_properties(shiboken6 PROPERTIES OUTPUT_NAME shiboken6${shiboken6_SUFFIX}) target_include_directories(shiboken6 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/shiboken @@ -20,17 +49,24 @@ target_include_directories(shiboken6 PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${apiextractor_SOURCE_DIR} ) -target_link_libraries(shiboken6 apiextractor Qt${QT_MAJOR_VERSION}::Core) +target_link_libraries(shiboken6 apiextractor Qt::Core) if (NOT DISABLE_DOCSTRINGS) - target_sources(shiboken6 PRIVATE qtdoc/qtxmltosphinx.cpp qtdoc/qtdocgenerator.cpp) - target_compile_definitions(shiboken6 PUBLIC DOCSTRINGS_ENABLED) + target_sources(shiboken6 PRIVATE + qtdoc/qtdocgenerator.cpp qtdoc/qtdocgenerator.h + qtdoc/qtxmltosphinx.cpp qtdoc/qtxmltosphinx.h + qtdoc/qtxmltosphinxinterface.h + qtdoc/rstformat.h) + target_compile_definitions(shiboken6 PUBLIC DOCSTRINGS_ENABLED QT_LEAN_HEADERS=1) endif() configure_file(shibokenconfig.h.in "${CMAKE_CURRENT_BINARY_DIR}/shibokenconfig.h" @ONLY) install(TARGETS shiboken6 - EXPORT Shiboken6Targets - DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") + EXPORT "${package_name}Targets" + DESTINATION "bin") +install(EXPORT "${package_name}Targets" + NAMESPACE "Shiboken6::" + DESTINATION ${LIB_INSTALL_DIR}/cmake/${package_name}) set(shiboken_generator_package_name "shiboken6_generator") @@ -61,3 +97,25 @@ configure_file("${shiboken_version_path}" install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_git_shiboken_generator_version.py" DESTINATION "${PYTHON_SITE_PACKAGES}/${shiboken_generator_package_name}") + +include(CMakePackageConfigHelpers) + +# Single build-tree and install-tree Config file. There's no need for separate ones because we +# don't specify any PATH_VARS, so the relative path of PACKAGE_PREFIX_DIR does not really matter. +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/../data/${package_name}Config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Config.cmake" + INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/${package_name}" +) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/${package_name}ConfigVersion.cmake" + VERSION "${shiboken6_VERSION}" + COMPATIBILITY AnyNewerVersion + ARCH_INDEPENDENT +) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Config.cmake" + DESTINATION "${LIB_INSTALL_DIR}/cmake/${package_name}") + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${package_name}ConfigVersion.cmake" + DESTINATION "${LIB_INSTALL_DIR}/cmake/${package_name}") |