今夜、Ubuntu 12.04LTS 64ビットボックスでLLVM libc ++ 3.4のdebを作成しようとしています。/usr/lib64/libc++.a
最初に、ヘッダーなしで構成された deb を作成したいと思います。はい、Debian ライブラリ パッケージ ガイド*-dev
に従って、ファイルをパッケージに含める必要があることはわかっcmake
てcpack
います。
そのため、最初に を変更しlibcxx-3.4/lib/CMakeLists.txt
、if チェックを追加しました (14 行目と 18 行目を参照)。
$ cat CMakeLists.txt
1 if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
2 set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE)
3 endif()
4
5 file(COPY .
6 DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1"
7 FILES_MATCHING
8 PATTERN "*"
9 PATTERN "CMakeLists.txt" EXCLUDE
10 PATTERN ".svn" EXCLUDE
11 ${LIBCXX_SUPPORT_HEADER_PATTERN}
12 )
13
14 if (${LIBCXX_ENABLE_SHARED} MATCHES "ON")
15 install(DIRECTORY "${CMAKE_BINARY_DIR}/include/c++/v1/"
16 DESTINATION include/c++/v1/
17 )
18 endif()
次に、build
サブディレクトリで、私は発行しました
CC=clang CXX=clang++ cmake -j2 -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_LIBCXXABI_INCLUDE_PATHS="../libcxxabi/include" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../libcxx -DLIBCXX_ENABLE_SHARED=OFF
作成された はdeb
まだすべてのヘッダーで構成されています。14 行目から 18 行目をコメントアウトすると、パッケージにはヘッダーが含まれていません。私はこれに困惑しています。親に対して定義された変数はCMakeLists.txt
、子によって取得される必要がありますCMakeLists.txt
。私は何を取りこぼしたか?ヒントをいただければ幸いです。