aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2019-04-18 14:04:42 +0200
committerChristian Tismer <tismer@stackless.com>2019-04-20 08:33:07 +0000
commit077006a9ea18305a183e2cf809e3b88e5f7f3619 (patch)
treee1219b0e8e9bbf189881cd4ab030438fd6e15745 /sources/shiboken2/ApiExtractor
parent48625f9447caaea3fb9524169bb75dd881cdf4c9 (diff)
Modernize and clean up some of the shiboken build system files
Use target_* commands instead of subdirectory based commands for adding link options, compile definitions, include directories, etc. Remove some non-used compile definitions. Move around some of the find_package() and option() calls. Simplify some of the package dependent logic. Replace the qt include and linking variables with CMake targets. Change-Id: I815595344e63a32dce3dc78652359beede3ff593 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/ApiExtractor')
-rw-r--r--sources/shiboken2/ApiExtractor/CMakeLists.txt75
-rw-r--r--sources/shiboken2/ApiExtractor/tests/CMakeLists.txt22
2 files changed, 30 insertions, 67 deletions
diff --git a/sources/shiboken2/ApiExtractor/CMakeLists.txt b/sources/shiboken2/ApiExtractor/CMakeLists.txt
index bd5654303..147fda377 100644
--- a/sources/shiboken2/ApiExtractor/CMakeLists.txt
+++ b/sources/shiboken2/ApiExtractor/CMakeLists.txt
@@ -3,26 +3,7 @@ project(apiextractor)
cmake_minimum_required(VERSION 3.1)
cmake_policy(VERSION 3.1)
-set(USE_LIBXSLT 0)
-if (NOT DISABLE_DOCSTRINGS)
- if (LIBXSLT_FOUND AND LIBXML2_FOUND)
- add_definitions(-DHAVE_LIBXSLT)
- set (USE_LIBXSLT 1)
- else()
- message(WARNING
- "libxslt and/or libxml not found, falling back to QtXmlPatterns (QTBUG-66925)")
- endif()
-endif()
-
-if(BUILD_TESTS)
- set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/tests)
-endif ()
-
-set(QT_USE_QTCORE 1)
-set(QT_USE_QTXML 1)
-add_definitions(-DQT_PLUGIN)
-add_definitions(-DQT_SHARED)
-add_definitions(-DRXX_ALLOCATOR_INIT_0)
+set(CMAKE_AUTOMOC ON)
set(apiextractor_SRC
apiextractor.cpp
@@ -47,45 +28,37 @@ parser/codemodel.cpp
parser/enumvalue.cpp
)
-set(APIEXTRACTOR_EXTRA_INCLUDES ${CLANG_EXTRA_INCLUDES})
-set(APIEXTRACTOR_EXTRA_LIBRARIES ${CLANG_EXTRA_LIBRARIES})
+add_library(apiextractor STATIC ${apiextractor_SRC})
+target_include_directories(apiextractor PRIVATE ${CLANG_EXTRA_INCLUDES}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/parser
+ ${CMAKE_CURRENT_SOURCE_DIR}/parser/rpp)
+target_link_libraries(apiextractor PUBLIC Qt5::Core)
+target_link_libraries(apiextractor PRIVATE ${CLANG_EXTRA_LIBRARIES})
if (NOT DISABLE_DOCSTRINGS)
- set(apiextractor_SRC
- ${apiextractor_SRC}
- docparser.cpp
- doxygenparser.cpp
- qtdocparser.cpp
- )
- set(APIEXTRACTOR_EXTRA_INCLUDES ${APIEXTRACTOR_EXTRA_INCLUDES})
- set(APIEXTRACTOR_EXTRA_LIBRARIES ${APIEXTRACTOR_EXTRA_LIBRARIES})
- if (USE_LIBXSLT)
- list(APPEND APIEXTRACTOR_EXTRA_INCLUDES ${LIBXSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
- list(APPEND APIEXTRACTOR_EXTRA_LIBRARIES ${LIBXSLT_LIBRARIES} ${LIBXML2_LIBRARIES})
+ target_sources(apiextractor PRIVATE docparser.cpp
+ doxygenparser.cpp
+ qtdocparser.cpp)
+ target_link_libraries(apiextractor PUBLIC Qt5::Xml Qt5::XmlPatterns)
+
+ if (LIBXSLT_FOUND AND LIBXML2_FOUND)
+ target_compile_definitions(apiextractor PUBLIC HAVE_LIBXSLT)
+ target_include_directories(apiextractor
+ PRIVATE ${LIBXSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
+ target_link_libraries(apiextractor
+ PRIVATE ${LIBXSLT_LIBRARIES} ${LIBXML2_LIBRARIES})
+ else()
+ message(WARNING
+ "libxslt and/or libxml not found, falling back to QtXmlPatterns (QTBUG-66925)")
endif()
endif()
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
-set(CMAKE_AUTOMOC ON)
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/parser
- ${CMAKE_CURRENT_SOURCE_DIR}/parser/rpp
- ${APIEXTRACTOR_EXTRA_INCLUDES}
- ${Qt5Core_INCLUDE_DIRS}
- ${Qt5Xml_INCLUDE_DIRS}
- )
-
-add_library(apiextractor STATIC ${apiextractor_SRC} ${apiextractor_RCCS_SRC})
-target_link_libraries(apiextractor
- ${Qt5Xml_LIBRARIES}
- ${Qt5XmlPatterns_LIBRARIES}
- ${APIEXTRACTOR_EXTRA_LIBRARIES}
- )
-
if (BUILD_TESTS)
+ set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/tests)
enable_testing()
add_subdirectory(tests)
endif()
diff --git a/sources/shiboken2/ApiExtractor/tests/CMakeLists.txt b/sources/shiboken2/ApiExtractor/tests/CMakeLists.txt
index 1429a63b1..a36cc17de 100644
--- a/sources/shiboken2/ApiExtractor/tests/CMakeLists.txt
+++ b/sources/shiboken2/ApiExtractor/tests/CMakeLists.txt
@@ -1,7 +1,3 @@
-find_package(Qt5Core)
-find_package(Qt5Gui)
-find_package(Qt5Test)
-
set(CMAKE_AUTORCC ON)
macro(declare_test testname)
@@ -13,19 +9,13 @@ macro(declare_test testname)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${testname}.qrc")
list(APPEND SOURCES "${testname}.qrc")
endif ()
+
add_executable(${testname} ${SOURCES})
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
- ${apiextractor_SOURCE_DIR}
- ${Qt5Test_INCLUDE_DIRS}
- )
- link_directories(${APIEXTRACTOR_EXTRA_LINK_DIRECTORIES})
- target_link_libraries(${testname}
- ${Qt5XmlPatterns_LIBRARIES}
- ${Qt5Test_LIBRARIES}
- ${Qt5Core_LIBRARIES}
- ${Qt5Gui_LIBRARIES}
- apiextractor)
+ target_include_directories(${testname} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${apiextractor_SOURCE_DIR}
+ )
+ target_link_libraries(${testname} PRIVATE apiextractor Qt5::Test)
add_test(${testname} ${testname})
if (INSTALL_TESTS)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${testname}