aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/CMakeLists.txt
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-28 07:51:22 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-28 09:34:35 +0000
commit2a2a0827fa54b2eeb48e0e2090dfc503492ef33e (patch)
tree4311f7ad34ff98fabcbe4c34e59a970ae4ff4bcf /sources/shiboken6/ApiExtractor/CMakeLists.txt
parentfb1c0f204e09ba29fa3d360d72231d4ed468c1e4 (diff)
Rename shiboken2 to shiboken6
Adapt CMake files, build scripts, tests and examples. Task-number: PYSIDE-904 Change-Id: I4cb5ee4c8df539546014b08202a7b1e98ed3ff07 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/shiboken6/ApiExtractor/CMakeLists.txt')
-rw-r--r--sources/shiboken6/ApiExtractor/CMakeLists.txt88
1 files changed, 88 insertions, 0 deletions
diff --git a/sources/shiboken6/ApiExtractor/CMakeLists.txt b/sources/shiboken6/ApiExtractor/CMakeLists.txt
new file mode 100644
index 000000000..e1b1f64e4
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/CMakeLists.txt
@@ -0,0 +1,88 @@
+project(apiextractor)
+
+cmake_minimum_required(VERSION 3.16)
+cmake_policy(VERSION 3.16)
+
+set(CMAKE_AUTOMOC ON)
+
+set(apiextractor_SRC
+apiextractor.cpp
+abstractmetaargument.cpp
+abstractmetabuilder.cpp
+abstractmetatype.cpp
+abstractmetalang.cpp
+documentation.cpp
+fileout.cpp
+graph.cpp
+messages.cpp
+propertyspec.cpp
+reporthandler.cpp
+sourcelocation.cpp
+typeparser.cpp
+typesystem.cpp
+typesystemparser.cpp
+include.cpp
+typedatabase.cpp
+# Clang
+clangparser/compilersupport.cpp
+clangparser/clangparser.cpp
+clangparser/clangbuilder.cpp
+clangparser/clangdebugutils.cpp
+clangparser/clangutils.cpp
+# Old parser
+parser/codemodel.cpp
+parser/enumvalue.cpp
+xmlutils.cpp
+)
+
+find_package(Qt${QT_MAJOR_VERSION}Xml 5.12)
+find_package(LibXml2 2.6.32)
+find_package(LibXslt 1.1.19)
+
+set(HAS_LIBXSLT 0)
+if (LIBXSLT_FOUND AND LIBXML2_FOUND)
+ set(HAS_LIBXSLT 1)
+endif()
+
+if(NOT HAS_LIBXSLT)
+ set(DISABLE_DOCSTRINGS TRUE)
+ message(WARNING
+ "Documentation will not be built due to missing dependency (no Qt5XmlPatterns found).")
+endif()
+
+# Export to parent scope so that generator/CMakeLists.txt gets it
+set(DISABLE_DOCSTRINGS ${DISABLE_DOCSTRINGS} PARENT_SCOPE)
+
+add_library(apiextractor STATIC ${apiextractor_SRC})
+target_include_directories(apiextractor PRIVATE ${CLANG_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/parser)
+target_link_libraries(apiextractor PUBLIC Qt${QT_MAJOR_VERSION}::Core)
+target_link_libraries(apiextractor PRIVATE libclang)
+
+if (HAS_LIBXSLT)
+ target_compile_definitions(apiextractor PUBLIC HAVE_LIBXSLT)
+ target_sources(apiextractor PRIVATE xmlutils_libxslt.cpp)
+ target_include_directories(apiextractor
+ PRIVATE ${LIBXSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
+ target_link_libraries(apiextractor
+ PRIVATE ${LIBXSLT_LIBRARIES} ${LIBXML2_LIBRARIES})
+endif()
+
+if (NOT DISABLE_DOCSTRINGS)
+ target_sources(apiextractor PRIVATE docparser.cpp
+ doxygenparser.cpp
+ qtdocparser.cpp)
+endif()
+
+target_compile_definitions(apiextractor PRIVATE CMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}")
+
+set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
+
+if (BUILD_TESTS)
+ find_package(Qt${QT_MAJOR_VERSION}Test 5.12 REQUIRED)
+ set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/tests)
+ enable_testing()
+ add_subdirectory(tests)
+endif()