0
bitstream
というカスタムパッケージがあり、上流のプロジェクトで使用したいと思います。CmakeのFind_pathが機能しません
find_path(BITSTREAM_INCLUDE_DIR NAMES bitstream.hpp)
MESSAGE(STATUS "bitstream_include_dir: ${BITSTREAM_INCLUDE_DIR}")
find_library(BITSTREAM_LIBRARY NAMES bitstream)
MESSAGE(STATUS "BITSTREAM_LIBRARY: ${BITSTREAM_LIBRARY}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(BITSTREAM REQUIRED_VARS BITSTREAM_LIBRARY BITSTREAM_INCLUDE_DIR)
if(BITSTREAM_FOUND)
set(BITSTREAM_LIBRARIES ${BITSTREAM_LIBRARY})
set(BITSTREAM_INCLUDE_DIRS ${BITSTREAM_INCLUDE_DIR})
endif()
mark_as_advanced(BITSTREAM_INCLUDE_DIR BITSTREAM_LIBRARY)
と上流のプロジェクトに私が追加::
--upstreamProject
|
|--src
|-- ...(many .cpp)
|--CmakeLists.txt
|--include
|-- ... (..many .hpp)
|--bitstream
|--CMakeLists.txt
|--bitstreamConfig.cmake
|--src
|-- bitstream.cpp
|--include
|-- bitstream.hpp
は、だから私はbitstreamConfig.cmake
書く
SET(bitstream_DIR "${CMAKE_SOURCE_DIR}/bitstream")
FIND_PACKAGE(bitstream)
INCLUDE_DIRECTORIES(${BITSTREAM_INCLUDE_DIRS})
上流プロジェクトsrc
に私が追加:
TARGET_LINK_LIBRARIES(${...} ${BITSTREAM_LIBRARIES})
が、実行をcmake
は、私が得たこと:
-- bitstream_include_dir: BITSTREAM_INCLUDE_DIR-NOTFOUND
-- BITSTREAM_LIBRARY: BITSTREAM_LIBRARY-NOTFOUND
-- Could NOT find BITSTREAM (missing: BITSTREAM_LIBRARY BITSTREAM_INCLUDE_DIR)
cmakeのは、事前に、感謝を正しいパスを見つけることができない理由を教えてください!
私はcmakeをこの方法で使用しません。 cmake 'package finding'コマンドは、外部のパッケージ(他の人がコンパイルしたパッケージ - 必ずしもそうではないが、cmakeも使用する可能性があります)を見つけることを意図しています。したがって、そのビットストリームパッケージを完全に分離されたプロジェクトにするか、それをプロジェクトの一部にして、findパッケージの代わりにcmakeインクルードを使用します。 –