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

时间:2013-04-05 15:55:33

标签: c++ cmake clang libc++ cpack

来自SVN的最新LLVM libc++ 3.3带有CMakeLists.txt。我是一名CMake新手,但昨天我研究得足以在RHEL 6.4 x86_64主机上建立libc++签出。

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

是。我查看了Is it possible to get CMake to build both a static and shared version of the same library?。但是,我不想使用add_library并枚举所有源文件,而是使用libc++的{​​{1}}使用的方法 - 使用CMakeList.txt

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

OFF

或者我可以保持原样并构建共享库。

我还修改了以下几行,例如消除40 option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON) 41 或注释掉第232和233行。但无论我怎么做,我似乎都无法将静态lib与共享库一起构建。

NOT

如何调整232 if (NOT LIBCXX_ENABLE_SHARED) 233 list(APPEND LIBCXX_CXX_FEATURE_FLAGS -D_LIBCPP_BUILD_STATIC) 234 endif() 文件以便同时构建两者?

1 个答案:

答案 0 :(得分:3)

行。我决定使用{try and true'方法使用add_library命令,列出所有*.cpp。它适用于OOTB,因此我认为它是一种解决方案。

一旦我有时间提高CMake的熟练程度,我将再次重新访问此问题。