diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-04-18 14:04:42 +0200 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2019-04-20 08:33:07 +0000 |
commit | 077006a9ea18305a183e2cf809e3b88e5f7f3619 (patch) | |
tree | e1219b0e8e9bbf189881cd4ab030438fd6e15745 /sources/shiboken2/ApiExtractor/CMakeLists.txt | |
parent | 48625f9447caaea3fb9524169bb75dd881cdf4c9 (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/CMakeLists.txt')
-rw-r--r-- | sources/shiboken2/ApiExtractor/CMakeLists.txt | 75 |
1 files changed, 24 insertions, 51 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() |