Skip to content

Commit

Permalink
[#83] Import libclang settings from conan package
Browse files Browse the repository at this point in the history
  • Loading branch information
Manu343726 committed Dec 28, 2016
1 parent 86dd85b commit cbddd10
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
25 changes: 25 additions & 0 deletions cmake/libclang.cmake
Expand Up @@ -191,7 +191,32 @@ else()
endif()
endif()

set(SIPLASPLAS_LIBCLANG_VERSION_LEGACY "${SIPLASPLAS_LIBCLANG_VERSION}")
set(SIPLASPLAS_LIBCLANG_INCLUDE_DIR_KEGACY "${SIPLASPLAS_LIBCLANG_INCLUDE_DIR}")
set(SIPLASPLAS_LIBCLANG_SYSTEM_INCLUDE_DIR_LEGACY "${SIPLASPLAS_LIBCLANG_SYSTEM_INCLUDE_DIR}")
set(SIPLASPLAS_LIBCLANG_LIBRARY_LEGACY "${SIPLASPLAS_LIBCLANG_LIBRARY}")

if(TARGET CONAN_PKG::clang)
message(STATUS "Using Conan libclang...")
message(WARNING "For compatibility with old versions, use SIPLASPLAS_LIBCLANG_XXX_LEGACY variables")

set(SIPLASPLAS_LIBCLANG_VERSION "3.8.0")
set(SIPLASPLAS_LIBCLANG_INCLUDE_DIR "${CONAN_CLANG_ROOT}/include")
set(SIPLASPLAS_LIBCLANG_SYSTEM_INCLUDE_DIR "${CONAN_CLANG_ROOT}/lib/clang/${SIPLASPLAS_LIBCLANG_VERSION}/include")

if(WIN32)
set(SIPLASPLAS_LIBCLANG_LIBRARY "${CONAN_CLANG_ROOT}/lib/libclang.dll")
else()
if(APPLE)
set(SIPLASPLAS_LIBCLANG_LIBRARY "${CONAN_CLANG_ROOT}/lib/libclang.dylib")
else()
set(SIPLASPLAS_LIBCLANG_LIBRARY "${CONAN_CLANG_ROOT}/lib/libclang.so")
endif()
endif()
endif()

string(REGEX REPLACE "([0-9]+\\.[0-9]+)\\.[0-9]+" "\\1" SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR "${SIPLASPLAS_LIBCLANG_VERSION}")
string(REGEX REPLACE "([0-9]+\\.[0-9]+)\\.[0-9]+" "\\1" SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR_LEGACY "${SIPLASPLAS_LIBCLANG_VERSION_LEGACY}")

if(SIPLASPLAS_VERBOSE_CONFIG)
message(STATUS "libclang version: ${SIPLASPLAS_LIBCLANG_VERSION} (${SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR})")
Expand Down
14 changes: 7 additions & 7 deletions src/reflection/parser/drlparser.cmake
Expand Up @@ -29,15 +29,15 @@ macro(drlparser_setup)
# that's why the clang packages are tagged 3.x and we compare against
# SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR instead of SIPLASPLAS_LIBCLANG_VERSION

if(NOT libclang_bindings_version VERSION_EQUAL SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR)
message(FATAL_ERROR "libclang python bindings (clang==${libclang_bindings_version}) do not match required libclang version (${SIPLASPLAS_LIBCLANG_VERSION})")
if(NOT libclang_bindings_version VERSION_EQUAL SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR_LEGACY)
message(FATAL_ERROR "libclang python bindings (clang==${libclang_bindings_version}) do not match required libclang version (${SIPLASPLAS_LIBCLANG_VERSION_LEGACY})")
else()
message(STATUS "libclang python bindings found")
endif()
else()
message(STATUS "Python bindings (package \"clang\") not found. Installing...")

pip_install_package(clang ${SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR})
pip_install_package(clang ${SIPLASPLAS_LIBCLANG_VERSION_MAJOR_MINOR_LEGACY})
endif()

set(__SIPLASPLAS_DRLPARSER_DEPS_SATISFIED TRUE CACHE INTERNAL "")
Expand Down Expand Up @@ -90,7 +90,7 @@ function(configure_siplasplas_reflection TARGET)
endforeach()
log("libclang system include dir: ${LIBCLANG_SYSTEM_INCLUDE_DIR}")

list(APPEND EXTRA_LIBCLANG_INCLUDES ${STDLIBCPP_INCLUDES} ${LIBCLANG_SYSTEM_INCLUDE_DIR})
list(APPEND EXTRA_LIBCLANG_INCLUDES ${STDLIBCPP_INCLUDES} ${SIPLASPLAS_LIBCLANG_SYSTEM_INCLUDE_DIR_LEGACY})
endif()

target_include_directories(${TARGET}
Expand Down Expand Up @@ -125,9 +125,9 @@ function(configure_siplasplas_reflection TARGET)
set(ignore_database --ignore-database)
endif()

if(SIPLASPLAS_LIBCLANG_LIBRARY)
log("DRLParser custom libclang file: ${SIPLASPLAS_LIBCLANG_LIBRARY}")
set(libclang --libclang ${SIPLASPLAS_LIBCLANG_LIBRARY})
if(SIPLASPLAS_LIBCLANG_LIBRARY_LEGACY)
log("DRLParser custom libclang file: ${SIPLASPLAS_LIBCLANG_LIBRARY_LEGACY}")
set(libclang --libclang ${SIPLASPLAS_LIBCLANG_LIBRARY_LEGACY})
endif()

if(DRLPARSER_VERBOSE OR SIPLASPLAS_VERBOSE_DRLPARSER)
Expand Down

0 comments on commit cbddd10

Please sign in to comment.