diff options
author | Oscar Fuentes <ofv@wanadoo.es> | 2011-03-13 15:10:24 +0000 |
---|---|---|
committer | Oscar Fuentes <ofv@wanadoo.es> | 2011-03-13 15:10:24 +0000 |
commit | 0b34dbaafe412a8437212805dcafa4565ee80ce5 (patch) | |
tree | 71953e37f1de9059f8226f397f2a8d716f113fd5 | |
parent | d9e9b8f195b6fb2b54342dfa49fee900da67c3a3 (diff) |
Build libclang as a static library too. Now tested on Windows!
On Windows only the shared library is created. The reason for this is
that clang.lib the static library would clash with clang.lib the
export library of the dll.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127566 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/libclang/CMakeLists.txt | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt index 11759eefb6..88b8ff28ab 100644 --- a/tools/libclang/CMakeLists.txt +++ b/tools/libclang/CMakeLists.txt @@ -1,5 +1,3 @@ -set(SHARED_LIBRARY TRUE) - set(LLVM_USED_LIBS clangFrontend clangDriver @@ -15,7 +13,7 @@ set( LLVM_LINK_COMPONENTS mc ) -add_clang_library(libclang +set(SOURCES CIndex.cpp CIndexCXX.cpp CIndexCodeCompletion.cpp @@ -27,34 +25,44 @@ add_clang_library(libclang CXString.cpp CXType.cpp ../../include/clang-c/Index.h -) - -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - # Darwin-specific linker flags + ) - set(LIBCLANG_LINK_FLAGS "-Wl,-compatibility_version -Wl,1") - - set(LIBCLANG_LINK_FLAGS - "${LIBCLANG_LINK_FLAGS} -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000") +if( LLVM_ENABLE_PIC ) + set(SHARED_LIBRARY TRUE) + add_clang_library(libclang ${SOURCES}) set_target_properties(libclang PROPERTIES - LINK_FLAGS "${LIBCLANG_LINK_FLAGS}" - INSTALL_NAME_DIR "@executable_path/../lib") + OUTPUT_NAME "clang" + VERSION ${LIBCLANG_LIBRARY_VERSION} + DEFINE_SYMBOL _CINDEX_LIB_) + + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(LIBCLANG_LINK_FLAGS "-Wl,-compatibility_version -Wl,1" + " -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000") + set_target_properties(libclang + PROPERTIES + LINK_FLAGS "${LIBCLANG_LINK_FLAGS}" + INSTALL_NAME_DIR "@executable_path/../lib") + endif() + + if(MSVC) + # windows.h doesn't compile with /Za + get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS) + string(REPLACE "/Za" "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS}) + set_target_properties(libclang PROPERTIES + COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS}) + endif() + + set(LIBCLANG_STATIC_TARGET_NAME libclang_static) +else() + set(LIBCLANG_STATIC_TARGET_NAME libclang) endif() -# Versioning information -set_target_properties(libclang PROPERTIES VERSION ${LIBCLANG_LIBRARY_VERSION}) - -if(MSVC) - # windows.h doesn't compile with /Za - get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS) - string(REPLACE /Za "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS}) - set_target_properties(libclang PROPERTIES COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS}) -endif(MSVC) - -set_target_properties(libclang - PROPERTIES - PREFIX "" # Otherwise we get liblibclang.so - LINKER_LANGUAGE CXX - DEFINE_SYMBOL _CINDEX_LIB_) +if( NOT BUILD_SHARED_LIBS AND NOT WIN32 ) + add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES}) + + set_target_properties(${LIBCLANG_STATIC_TARGET_NAME} + PROPERTIES + OUTPUT_NAME "clang") +endif() |