]> granicus.if.org Git - clang/commitdiff
Build libclang as a static library too.
authorOscar Fuentes <ofv@wanadoo.es>
Sat, 12 Mar 2011 22:01:58 +0000 (22:01 +0000)
committerOscar Fuentes <ofv@wanadoo.es>
Sat, 12 Mar 2011 22:01:58 +0000 (22:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127556 91177308-0d34-0410-b5e6-96231b3b80d8

tools/libclang/CMakeLists.txt

index 11759eefb6d362f44d4ecd60691653c80c51e614..128f6314a5179416c2336100426ab87b0b0a33e2 100644 (file)
@@ -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,50 @@ 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 AND NOT WIN32 )
+  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")
+    # 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")
+
+    set_target_properties(libclang
+      PROPERTIES
+      LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
+      INSTALL_NAME_DIR "@executable_path/../lib")
+  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 )
+  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
+
+  set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
+    PROPERTIES
+    OUTPUT_NAME "clang")
+
+  if(MSVC)
+    # windows.h doesn't compile with /Za
+    get_target_property(NON_ANSI_COMPILE_FLAGS ${LIBCLANG_STATIC_TARGET_NAME}
+      COMPILE_FLAGS)
+    string(REPLACE /Za "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
+    set_target_properties(${LIBCLANG_STATIC_TARGET_NAME} PROPERTIES
+      COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
+  endif()
+endif()