aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/generator/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/generator/CMakeLists.txt')
-rw-r--r--sources/shiboken6/generator/CMakeLists.txt63
1 files changed, 63 insertions, 0 deletions
diff --git a/sources/shiboken6/generator/CMakeLists.txt b/sources/shiboken6/generator/CMakeLists.txt
new file mode 100644
index 000000000..a625969dd
--- /dev/null
+++ b/sources/shiboken6/generator/CMakeLists.txt
@@ -0,0 +1,63 @@
+project(shibokengenerator)
+
+set(shiboken6_SRC
+generator.cpp
+shiboken/cppgenerator.cpp
+shiboken/headergenerator.cpp
+shiboken/overloaddata.cpp
+shiboken/shibokengenerator.cpp
+main.cpp
+)
+
+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
+ ${CMAKE_CURRENT_SOURCE_DIR}/qtdoc
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${apiextractor_SOURCE_DIR}
+ )
+target_link_libraries(shiboken6 apiextractor Qt${QT_MAJOR_VERSION}::Core)
+if (NOT DISABLE_DOCSTRINGS)
+ target_sources(shiboken6 PRIVATE qtdoc/qtdocgenerator.cpp)
+ target_compile_definitions(shiboken6 PUBLIC DOCSTRINGS_ENABLED)
+endif()
+
+configure_file(shibokenconfig.h.in "${CMAKE_CURRENT_BINARY_DIR}/shibokenconfig.h" @ONLY)
+
+install(TARGETS shiboken6
+ EXPORT Shiboken6Targets
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+
+set(shiboken_generator_package_name "shiboken6_generator")
+
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_config.py.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/_config.py" @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_config.py"
+ DESTINATION "${PYTHON_SITE_PACKAGES}/${shiboken_generator_package_name}")
+
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/__init__.py" @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/__init__.py"
+ DESTINATION "${PYTHON_SITE_PACKAGES}/${shiboken_generator_package_name}")
+
+# shiboken6 setuptools entry point
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../shiboken_tool.py
+ DESTINATION bin
+ PERMISSIONS
+ OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ
+ WORLD_EXECUTE WORLD_READ)
+
+# Use absolute path instead of relative path, to avoid ninja build errors due to
+# duplicate file dependency inconsistency.
+set(shiboken_version_relative_path "${CMAKE_CURRENT_SOURCE_DIR}/../shiboken_version.py")
+get_filename_component(shiboken_version_path ${shiboken_version_relative_path} ABSOLUTE)
+configure_file("${shiboken_version_path}"
+ "${CMAKE_CURRENT_BINARY_DIR}/_git_shiboken_generator_version.py" @ONLY)
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_git_shiboken_generator_version.py"
+ DESTINATION "${PYTHON_SITE_PACKAGES}/${shiboken_generator_package_name}")