誰にも見えないブログ

雑なメモ。まとまってない文章等

CMake

cmake tutorial その7(最終回):EXPORT,find_package()など

最後まで終わった!よく頑張った!このチュートリアルのおかげでCMakeにしていた重大な勘違いに幾つも気付く事ができた。 俺がチュートリアル勉強しながら、テディーベアデバッグ的に適当に書きなぐったことなので、読んでもあまり参考にならないのでその点よろし…

cmakeでinstallしたtargetを削除する方法

標準パスにインストールしたバイナリを削除したい。 makeならmake uninstallを実行することで削除できるが、cmakeはuninstallターゲットをデフォルトで作成しない 一応、cmakeにもuninstall targetを作成する方法はある。 xargs rm < install_manifest.txtでイン…

自作Cコンパイラのビルド基盤をMakeからCMakeに移行してます(途中)

debug build C11オプション テスト(途中) 結果 ninjaでビルド compiler bookの古い版のmake file CFLAGS=-std=c11 -g -static SRCS=$(wildcard *.c) OBJS=$(SRCS:.c=.o) ycc: $(OBJS) $(CC) -o ycc $(OBJS) $(LDFLAGS) $(OBJS): ycc.h test: ycc ./test.sh c…

cmake tutorialその6:ジェネレーター式

cmakeを学んで年収を上げるコーナーです ジェネレータ式 CMakeLists.txtに書く内容 解説 $<COMPILE_LANG_AND_ID:language,compiler_ids> $<condition:true_string> $<BUILD_INTERFACE:...>(わからん) 他 ジェネレータ式 Adding Generator Expressions (Step 10)の内容 ジェネレータ式 cmakeのビルドプロセスにおけるgenerate段階で評価される おさらい</build_interface:...></condition:true_string></compile_lang_and_id:language,compiler_ids>…

cmake tutorialその5:デフォルトリンク動作の制御

cmakeチュートリアルその5 昨日も今日もcmake。たぶん明日も明後日も。 共有ライブラリのリンク build 愚痴:target_link_librariesで指定するlibのtypo 愚痴2:勝手にソース変更ヤメテ(チュートリアル) まとめ 余談 共有ライブラリのリンク Mixing Static and S…

cmake tuorialその4:ファイル生成,インストーラーのビルド等

cmakeを諦めない。 Custom commandを使ったファイル生成 パッケージインストーラーのビルド テスト結果をダッシュボードで表示する Custom commandを使ったファイル生成 Adding a Custom Command and Generated File (Step 6)の内容 標準で用意されているlog…

cmake-tuorialその3:実行環境の確認

cmake力の高まりを感じる Introspection Adding System Introspection (Step 5)の内容 introspectionというのはリフレクションみたいな意味らしい。(見出しにしか使われていない。システム用語というより一般用語な使い方をしている) 処理系や環境が特定の機能…

cmake tutorialその2:ライブラリ、テスト、Usage Requierment

cmake tutorialその2 前回からの引き続き。 ライブラリの追加 Usage Requierment プチ解説 補足:step3理解のために参考にしたもの step3疑問 installとtest install test 他 step2からstep4まで読んだ。 次回はstep5から https://cmake.org/cmake/help/latest/…

cmake tutorialその1:プロジェクトバージョン設定、C++規格指定、out-of-sourceビルド

環境 ubuntu 18.04 cmake 3.16.0-rc3 g++ 7.4.0 公式チュートリアルを進めたときの作業記録というかコメンタリー的なものをを適当にブログに起こした。 cmake.org とりあえず「A Basic Starting Point (Step 1)」を全部読んだ。 ステップ1基本 プロジェクト…

共有ライブラリ・静的ライブラリ・動的リンク・静的リンク検証

cmakeのBUILD_SHARED_LIBSでもやもやしてた cmake.org ので以下記事の検証 blog.amedama.jp 静的ライブラリ 共有ライブラリ dynamic link static link まとめ 静的ライブラリ greet.cをコンパイル greet.c,main.cのソースは上記サイトのものを流用 $ gcc -c …

cmake経由でmake実行時に-jオプションを渡す(未解決)→makeからninjaに乗る変える回

いい加減な理解で使ってるcmakeとの戦い。 MAKEFLAGS ninja 結局ninja 追記 10コアとかあるPCや100コア越えるメニーコアサーバー上で-jオプション使わずにビルドするとめちゃくちゃ遅い。cmake経由でmakeを実行するときは実行時引数か何かでしていするのかか…

ubuntu18.04でcmakeの最新versionを入れた

cmakelists.txtに登録されているminimu_requiredがインストールされてるcmkeで間に合ってない的なエラーがでた。 sudo apt installで入るversionには古いものしかなかった sudo apt removeでcmakeを削除し、以下の方法でインストールした。 askubuntu.com