[cfe-commits] r127564 - /cfe/trunk/tools/libclang/CMakeLists.txt

Francois Pichet pichet2000 at gmail.com
Sat Mar 12 20:36:52 PST 2011


On Sat, Mar 12, 2011 at 11:28 PM, Oscar Fuentes <ofv at wanadoo.es> wrote:
> Author: ofv
> Date: Sat Mar 12 22:28:29 2011
> New Revision: 127564
>
> URL: http://llvm.org/viewvc/llvm-project?rev=127564&view=rev
> Log:
> Reverting "Build libclang as a static library too."
>
> This reverts commit r127556. It breaks the build for MSVC.
>
> Modified:
>    cfe/trunk/tools/libclang/CMakeLists.txt
>
> Modified: cfe/trunk/tools/libclang/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CMakeLists.txt?rev=127564&r1=127563&r2=127564&view=diff
> ==============================================================================
> --- cfe/trunk/tools/libclang/CMakeLists.txt (original)
> +++ cfe/trunk/tools/libclang/CMakeLists.txt Sat Mar 12 22:28:29 2011
> @@ -1,3 +1,5 @@
> +set(SHARED_LIBRARY TRUE)
> +
>  set(LLVM_USED_LIBS
>   clangFrontend
>   clangDriver
> @@ -13,7 +15,7 @@
>   mc
>   )
>
> -set(SOURCES
> +add_clang_library(libclang
>   CIndex.cpp
>   CIndexCXX.cpp
>   CIndexCodeCompletion.cpp
> @@ -25,50 +27,34 @@
>   CXString.cpp
>   CXType.cpp
>   ../../include/clang-c/Index.h
> -  )
> -
> -if( LLVM_ENABLE_PIC AND NOT WIN32 )
> -  set(SHARED_LIBRARY TRUE)
> -  add_clang_library(libclang ${SOURCES})
> -
> -  set_target_properties(libclang
> -    PROPERTIES
> -    OUTPUT_NAME "clang"
> -    VERSION ${LIBCLANG_LIBRARY_VERSION}
> -    DEFINE_SYMBOL _CINDEX_LIB_)
> +)
>
> -  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
> -    # Darwin-specific linker flags
> +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
> +  # Darwin-specific linker flags
>
> -    set(LIBCLANG_LINK_FLAGS "-Wl,-compatibility_version -Wl,1")
> -
> -    set(LIBCLANG_LINK_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)
> +  set_target_properties(libclang
> +    PROPERTIES
> +    LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
> +    INSTALL_NAME_DIR "@executable_path/../lib")
>  endif()
>
> -if( NOT BUILD_SHARED_LIBS )
> -  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
> +# Versioning information
> +set_target_properties(libclang PROPERTIES VERSION ${LIBCLANG_LIBRARY_VERSION})
>
> -  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()
> +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_)
>

You can reapply this patch but you need to remove all that: (in Index.h)
  #ifdef _CINDEX_LIB_
    #define CINDEX_LINKAGE __declspec(dllexport)
  #else
    #define CINDEX_LINKAGE __declspec(dllimport)
  #endif

just do
  #define CINDEX_LINKAGE

You can't do dllexport and dllimport stuff for shared libs. I was just
about this checkin that but you reverted the patch:(

just




More information about the cfe-commits mailing list