This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
programming:cmake [2022/04/13 04:49] odagawa |
programming:cmake [2022/07/21 06:15] (current) odagawa |
||
---|---|---|---|
Line 2: | Line 2: | ||
CMake は実行ファイル作成時の依存関係を整理し,Makefile などを作成してくれるソフトウェア.\\ | CMake は実行ファイル作成時の依存関係を整理し,Makefile などを作成してくれるソフトウェア.\\ | ||
- | スクラッチで書いたことはないが,どこかから何かしらをコピペしながら覚えていくのがよいと思う. | + | スクラッチで書いたことはないが,どこかから何かしらをコピペしながら覚えていくのがよいと思う.\\ |
+ | おそらく最小単位は以下の通り (MyApp.cpp から MyApp を作成) | ||
< | < | ||
Line 23: | Line 24: | ||
message(" | message(" | ||
</ | </ | ||
+ | |||
+ | そして, | ||
+ | < | ||
+ | target_include_directories(MyApp PRIVATE ${ROOT_INCLUDE_DIRS}) | ||
+ | target_link_libraries(MyApp ${ROOT_LIBRARIES}) | ||
+ | </ | ||
+ | とすれば使えるはず. | ||
===boost=== | ===boost=== | ||
Line 50: | Line 58: | ||
===自作ライブラリ=== | ===自作ライブラリ=== | ||
+ | |||
+ | いろいろ調べてコピペしたので間違ってても保証はできない.\\ | ||
+ | 少なくとも KEKCC の僕の環境では動いた. | ||
+ | < | ||
+ | SET(MYLIB_SERACH_PATHS | ||
+ | /usr/local | ||
+ | /opt/local | ||
+ | ${MYLIB_PATH} | ||
+ | ) | ||
+ | |||
+ | FIND_PATH(MYLIB_INCLUDE_DIR MyLib.hpp | ||
+ | HINTS | ||
+ | $ENV{MYLIBDIR} | ||
+ | PATH_SUFFIXES include/ | ||
+ | PATHS ${MYLIB_SEARCH_PATHS} | ||
+ | ) | ||
+ | |||
+ | FIND_LIBRARY(MYLIB_TEMP | ||
+ | NAMES MyLib | ||
+ | HINTS | ||
+ | ${ENV{MYLIBDIR} | ||
+ | PATH_SUFFIXES lib64/ | ||
+ | PATHS ${MYLIB_SEARCH_PATHS} | ||
+ | ) | ||
+ | |||
+ | IF(MYLIB_TEMP) | ||
+ | SET(MYLIB ${MCLIB_TEMP} CACHE STRING "Where mylib Library can be found" | ||
+ | SET(MCLIB_TEMP " | ||
+ | ENDIF(MYLIB_TEMP) | ||
+ | |||
+ | INCLUDE(FindPackageHandleStandardArgs) | ||
+ | |||
+ | FIND_PACKAGE_HANDLE_STANDARD_ARGS(MyLib REQUIRED_VARS MYLIB MYLIB_INCLUDE_DIR) | ||
+ | |||
+ | </ |