为LLVM libc ++ 3.3构建静态和共享库

use*_*394 5 c++ cmake clang cpack libc++

libc++来自SVN 的最新LLVM 3.3附带一个CMakeLists.txt.我是一个CMake新手,但昨天我研究了足够能够libc++在RHEL 6.4 x86_64主机上建立结账.

另外,我能够添加足够的CPack相关命令CMakeLists.txt来生成一个libcxx-3.3.svn-0.el6.x86_64.rpm.但很可能由于是新手CMake,我无法同时构建静态和共享库.

是.我回顾是否有可能让CMake构建同一个库的静态和共享版本?.但是,add_library我不想使用和枚举所有源文件,而是想使用libc++'s CMakeList.txt- 使用的方法APPEND.

我可以通过替换ON下面的第40行来生成静态库,OFF以构建静态库

40  option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
41 
Run Code Online (Sandbox Code Playgroud)

或者我可以保持原样并构建一个共享库.

我还修改了以下几行,例如消除NOT或注释掉第232和233行.但无论我尝试什么,我似乎无法让静态库与共享库一起构建.

232  if (NOT LIBCXX_ENABLE_SHARED)
233    list(APPEND LIBCXX_CXX_FEATURE_FLAGS -D_LIBCPP_BUILD_STATIC)
234  endif()
Run Code Online (Sandbox Code Playgroud)

如何调整CMakeList.txt文件以便同时构建文件?

use*_*394 3

好的。我决定使用“经过尝试且真实”的add_library命令方法,并*.cpp列出所有内容。它可以 OOTB 工作,所以我认为它是一个解决方案。

一旦我有时间提高我的熟练程度,我将再次重新讨论这个问题CMake。