autoconfの場合、基礎的な仕組みとad hoc なルールが明確に切り分けられてて、 後者はすべてマクロで構築されてるので、足りない部分は既存のマクロを参考に自分で用意するとか容易だけど、 CMakeの場合、VisualStudio の各バージョン対応みたいなのが C++ のソースコードとして記述されてて、 CMakeであらかじめ対応しているプラットフォーム向けは簡単な記述で済むし実行速度も速いけど、 ちょっと想定から外れた使い方しようとすると途端に面倒くさくなって落差が激しい感じ。
よく知らない頃は ad hoc なルールの類は全部組み込みスクリプティング言語で書いてあるかと思ってたら 全然そうじゃないので、なんかコレジャナイ感が。
CMake (スコア:1)
CMakeホントにいいかなあ。
autoconfの場合、基礎的な仕組みとad hoc なルールが明確に切り分けられてて、
後者はすべてマクロで構築されてるので、足りない部分は既存のマクロを参考に自分で用意するとか容易だけど、
CMakeの場合、VisualStudio の各バージョン対応みたいなのが C++ のソースコードとして記述されてて、
CMakeであらかじめ対応しているプラットフォーム向けは簡単な記述で済むし実行速度も速いけど、
ちょっと想定から外れた使い方しようとすると途端に面倒くさくなって落差が激しい感じ。
よく知らない頃は ad hoc なルールの類は全部組み込みスクリプティング言語で書いてあるかと思ってたら
全然そうじゃないので、なんかコレジャナイ感が。
Re: (スコア:0)
ほんとこれ
さらにつけ加えると互換性問題も以外と酷い
cmake_minimum_required (VERSION 3.10.1) みたいなのがまれに良く出てくる
ArchやGentooなどの、最新版こそ正義みたいなポリシーのディストリ使ってるならともかく
stableって古いことだと勘違いしてるDebianみたいなディストリ使ってると、ただ単純に動かすだけでも一苦労
ついでにいっとくと、cmake_minimum_requiredみたいなイカレたディレクティブ名からお察しできるように
VBAでもリスペクトしてんのかっていうくらい、全てのディレクティブが無駄にバカ長い
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) とか
ad
Re:CMake (スコア:0)
CMakeFile.txt じゃなくて、もっと長い CMakeFiles.txt だよね