103 lines
2.0 KiB
CMake
103 lines
2.0 KiB
CMake
set(LLVM_NO_DEAD_STRIP 1)
|
|
|
|
#get_target_property(clingInterpSrc clingInterpreter SOURCES)
|
|
#get_target_property(clingMetaSrc clingMetaProcessor SOURCES)
|
|
#get_target_property(clingUtilsSrc clingUtils SOURCES)
|
|
set(SOURCES
|
|
$<TARGET_OBJECTS:obj.clingInterpreter>
|
|
$<TARGET_OBJECTS:obj.clingMetaProcessor>
|
|
$<TARGET_OBJECTS:obj.clingUtils>
|
|
ADDITIONAL_HEADERS
|
|
)
|
|
|
|
set(LIBS
|
|
clangDriver
|
|
clangFrontend
|
|
clangParse
|
|
clangSema
|
|
clangAST
|
|
clangLex
|
|
clangSerialization
|
|
clangCodeGen
|
|
clangBasic
|
|
|
|
clingUtils
|
|
)
|
|
|
|
set( LLVM_LINK_COMPONENTS
|
|
analysis
|
|
core
|
|
executionengine
|
|
ipo
|
|
mc
|
|
native
|
|
nativecodegen
|
|
object
|
|
option
|
|
orcjit
|
|
runtimedyld
|
|
support
|
|
target
|
|
)
|
|
|
|
find_library(DL_LIBRARY_PATH dl)
|
|
if (DL_LIBRARY_PATH)
|
|
list(APPEND LIBS dl)
|
|
endif()
|
|
|
|
option(LIBCLING_BUILD_STATIC
|
|
"Build libcling as a static library (in addition to a shared one)" OFF)
|
|
|
|
# We do C++...
|
|
# set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libclang.exports)
|
|
|
|
#if(MSVC)
|
|
# Avoid LNK4197 not to spceify libclang.def here.
|
|
# Each functions is exported as "dllexport" in include/clang-c.
|
|
# KB835326
|
|
# set(LLVM_EXPORTED_SYMBOL_FILE)
|
|
#endif()
|
|
|
|
if( LLVM_ENABLE_PIC )
|
|
set(ENABLE_SHARED SHARED)
|
|
endif()
|
|
|
|
if((NOT LLVM_ENABLE_PIC OR LIBCLING_BUILD_STATIC) AND NOT WIN32)
|
|
set(ENABLE_STATIC STATIC)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
set(output_name "libcling")
|
|
else()
|
|
set(output_name "cling")
|
|
endif()
|
|
|
|
add_cling_library(libcling ${ENABLE_SHARED} ${ENABLE_STATIC}
|
|
OUTPUT_NAME ${output_name}
|
|
${SOURCES}
|
|
# DEPENDS clang-headers
|
|
|
|
LINK_LIBS
|
|
${LIBS}
|
|
|
|
LINK_COMPONENTS
|
|
# Core
|
|
# Support
|
|
)
|
|
|
|
set_target_properties(libcling
|
|
PROPERTIES ENABLE_EXPORTS 1)
|
|
|
|
if(ENABLE_SHARED)
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
set(LIBCLING_LINK_FLAGS " -Wl,-compatibility_version -Wl,1")
|
|
if (DEFINED ${LLVM_SUBMIT_VERSION})
|
|
set(LIBCLING_LINK_FLAGS
|
|
"${LIBCLING_LINK_FLAGS} -Wl,-current_version -Wl,${LLVM_SUBMIT_VERSION}.${LLVM_SUBMIT_SUBVERSION}")
|
|
endif()
|
|
|
|
set_property(TARGET libcling APPEND_STRING PROPERTY
|
|
LINK_FLAGS ${LIBCLING_LINK_FLAGS})
|
|
endif()
|
|
endif()
|