96 lines
2.2 KiB
CMake
96 lines
2.2 KiB
CMake
|
|
if (UNIX AND APPLE)
|
|
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
|
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build_release")
|
|
else()
|
|
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build_debug")
|
|
endif()
|
|
elseif(UNIX)
|
|
set(CLANG_BUILD_PATH "$ENV{LLVM_DIR}")
|
|
else()
|
|
if(${WINXXBITS} STREQUAL "Win32")
|
|
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build_win32")
|
|
else()
|
|
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build_win64")
|
|
endif()
|
|
endif()
|
|
|
|
if (UNIX AND NOT APPLE)
|
|
find_program(
|
|
LLVMCONFIG
|
|
llvm-config
|
|
PATHS "${CLANG_BUILD_PATH}/bin"
|
|
HINTS "${CLANG_BUILD_PATH}/bin"
|
|
)
|
|
execute_process(
|
|
COMMAND ${LLVMCONFIG} --cxxflags
|
|
OUTPUT_VARIABLE CLANG_DEFINITIONS
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
else()
|
|
execute_process(
|
|
COMMAND ${CLANG_BUILD_PATH}/bin/llvm-config --cxxflags
|
|
OUTPUT_VARIABLE CLANG_DEFINITIONS
|
|
)
|
|
endif()
|
|
|
|
# Remove unwanted flags
|
|
string(REPLACE "-fno-exceptions" "" CLANG_DEFINITIONS "${CLANG_DEFINITIONS}")
|
|
string(REPLACE "-fno-rtti" "" CLANG_DEFINITIONS "${CLANG_DEFINITIONS}")
|
|
string(REPLACE "-std=c++11" "" CLANG_DEFINITIONS "${CLANG_DEFINITIONS}")
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
|
string(REPLACE "-Wcovered-switch-default" "" CLANG_DEFINITIONS "${CLANG_DEFINITIONS}")
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
execute_process(
|
|
COMMAND ${LLVMCONFIG} --includedir
|
|
OUTPUT_VARIABLE CLANG_INCLUDE_DIRS
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
else()
|
|
set(CLANG_INCLUDE_DIRS
|
|
"$ENV{CLANG_DIR}/llvm/tools/clang/include"
|
|
"${CLANG_BUILD_PATH}/tools/clang/include"
|
|
)
|
|
endif()
|
|
|
|
set(CLANG_LIBRARY_DIRS "${CLANG_BUILD_PATH}/lib")
|
|
|
|
set(CLANG_LIBRARIES
|
|
#clangApplyReplacements
|
|
#clangARCMigrate
|
|
#clangCodeGen
|
|
#clangDynamicASTMatchers
|
|
#clangFormat
|
|
#clangFrontendTool
|
|
#clangIndex
|
|
#clangQuer
|
|
#clangTidy
|
|
#clangTidyGoogleModule
|
|
#clangTidyLLVMModule
|
|
#clangTidyMiscModule
|
|
clangASTMatchers
|
|
clangFrontend
|
|
clangSerialization
|
|
clangDriver
|
|
clangTooling
|
|
clangParse
|
|
clangSema
|
|
clangStaticAnalyzerFrontend
|
|
clangStaticAnalyzerCheckers
|
|
clangStaticAnalyzerCore
|
|
clangAnalysis
|
|
clangRewriteFrontend
|
|
clangEdit
|
|
clangAST
|
|
clangLex
|
|
clangBasic
|
|
)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(CLANG DEFAULT_MSG CLANG_LIBRARIES CLANG_INCLUDE_DIRS)
|
|
|
|
mark_as_advanced(CLANG_INCLUDE_DIRS CLANG_LIBRARIES)
|