documentationには表示されませんが、大文字と小文字の区別が問題になります。変更あなたのCMakeLists.txt
へ:ExternalProject_Add_Step()
で "ダウンロード" と "configureが" 今downcasedされていることを
❯ cat ../CMakeLists.txt
cmake_minimum_required(VERSION 3.7)
include(ExternalProject)
ExternalProject_Add(
boost
URL https://sourceforge.net/projects/boost/files/boost/1.62.0/boost_1_62_0.tar.gz/download
URL_HASH MD5=6f4571e7c5a66ccc3323da6c24be8f05
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add_Step(
boost UNIX_CONFIGURE DEPENDEES download DEPENDERS configure
WORKING_DIRECTORY "boost-prefix/src/boost/" COMMAND ./bootstrap.sh
)
注意してください。今、cmakeと正常に完了します。
❯ cmake ..
-- The C compiler identification is AppleClang 8.0.0.8000042
-- The CXX compiler identification is AppleClang 8.0.0.8000042
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/nega/foo/build
❯ make
Scanning dependencies of target boost
[ 11%] Creating directories for 'boost'
[ 22%] Performing download step (download, verify and extract) for 'boost'
-- verifying file...
file='/Users/nega/foo/build/boost-prefix/src/boost_1_62_0.tar.gz'
-- File already exists and hash match (skip download):
file='/Users/nega/foo/build/boost-prefix/src/boost_1_62_0.tar.gz'
MD5='6f4571e7c5a66ccc3323da6c24be8f05'
-- extracting...
src='/Users/nega/foo/build/boost-prefix/src/boost_1_62_0.tar.gz'
dst='/Users/nega/foo/build/boost-prefix/src/boost'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 33%] Performing UNIX_CONFIGURE step for 'boost'
Building Boost.Build engine with toolset darwin... tools/build/src/engine/bin.macosxx86_64/b2
Detecting Python version... 2.7
Detecting Python root... /Users/nega/i3/virtenv
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...
Bootstrapping is done. To build, run:
./b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
./b2 --help
- Getting started guide:
http://www.boost.org/more/getting_started/unix-variants.html
- Boost.Build documentation:
http://www.boost.org/build/doc/html/index.html
[ 44%] No update step for 'boost'
[ 55%] No patch step for 'boost'
[ 66%] No configure step for 'boost'
[ 77%] No build step for 'boost'
[ 88%] No install step for 'boost'
[100%] Completed 'boost'
[100%] Built target boost
今、あなたのビルドディレクトリのboost-prefix/src/boost-stamp
で見て:各ステップは、それにちなんで名付けられた「ファイルスタンプ」を持っているで
❯ v boost-prefix/src/boost-stamp
total 32
drwxr-xr-x 15 nega staff 510 Dec 20 12:29 ./
drwxr-xr-x 6 nega staff 204 Dec 20 12:28 ../
-rw-r--r-- 1 nega staff 0 Dec 20 12:29 boost-UNIX_CONFIGURE
-rw-r--r-- 1 nega staff 0 Dec 20 12:29 boost-build
-rw-r--r-- 1 nega staff 0 Dec 20 12:29 boost-configure
-rw-r--r-- 1 nega staff 0 Dec 20 12:29 boost-done
-rw-r--r-- 1 nega staff 0 Dec 20 12:28 boost-download
-rw-r--r-- 1 nega staff 0 Dec 20 12:29 boost-install
-rw-r--r-- 1 nega staff 0 Dec 20 12:28 boost-mkdir
-rw-r--r-- 1 nega staff 0 Dec 20 12:29 boost-patch
-rw-r--r-- 1 nega staff 0 Dec 20 12:29 boost-update
-rw-r--r-- 1 nega staff 173 Dec 20 12:18 boost-urlinfo.txt
-rw-r--r-- 1 nega staff 4424 Dec 20 12:18 download-boost.cmake
-rw-r--r-- 1 nega staff 1611 Dec 20 12:28 extract-boost.cmake
-rw-r--r-- 1 nega staff 0 Dec 20 12:28 verify-boost.cmake
あなたは気付くでしょう。デフォルトのステップはすべて小文字で、カスタムステップ "UNIX_CONFIGURE"は定義したとおりに大文字です。ケースをカスタムステップとミックスすると、出力として出力されます。
❯ grep -i unix ../CMakeLists.txt
boost uNiX_CoNFiGuRe DEPENDEES download DEPENDERS configure
❯ make | grep -i unix
[ 33%] Performing uNiX_CoNFiGuRe step for 'boost'
❯ find boost-prefix/src/boost-stamp | grep -i unix
boost-prefix/src/boost-stamp/boost-uNiX_CoNFiGuRe
また、make
の出力を見てください。
[ 22%] Performing download step (download, verify and extract) for 'boost'
[....]
[ 33%] Performing uNiX_CoNFiGuRe step for 'boost'
[....]
[ 44%] No update step for 'boost'
[ 55%] No patch step for 'boost'
[ 66%] No configure step for 'boost'
[ 77%] No build step for 'boost'
[ 88%] No install step for 'boost'
[100%] Completed 'boost'
[100%] Built target boost
すべてのデフォルト手順は、小文字で参照されています。
CMakeののExternalProject
モジュールにまとめ
、小文字のステップをデフォルトに参照してください。
実際のエラーメッセージに対処するため、 'ExternalProject _ *()'関数は他のCMakeコマンドのラッパーです。 'add_custom_command()'は別のカスタムコマンド "boost-CONFIGURE"に依存関係を追加しようとしていますが、実際の名前は "boost-configure"なので存在しません。 – nega