私は、現在作業中のライブラリを持っているか、またはCPUのアーキテクチャごとに最適化されたアセンブリを持っています。私たちは、nehalem、core2、k8などの最適化について話しています。cmakeでのコンパイル時のアーキテクチャの検出
とにかく、私は最近、ビルドシステムの実験をしてきたとCMakeので以下を設定するために管理している:
add_executable(arch/cpuid_x86 arch/cpuid_x86.c)
execute_process(COMMAND ${PROJECT_BINARY_DIR}/arch/cpuid_x86
OUTPUT_VARIABLE PROJECT_CPUID OUTPUT_STRIP_TRAILING_WHITESPACE)
これは、あなたはそれがない何を考えてい。 cpuid_x86.c
は、少しのCプログラムで、cpuid
命令を呼び出すためのインラインアセンブリがいくつかあります。それは前記命令の整数結果からアーキテクチャストリングを導き出し、それをstdoutに書き込む。
これで、上記の出力がヘッダーファイルで直接使用されるか、ファイル名を作成することになりました。これがアイデアです。
しかし、私はcmakeの新人です。ちょうどこれがちょっとしたハックだと感じています。おそらくそれではないので、私の質問は私がcmakeをここで正しい方法で使用しているのですか?私は予期せぬ問題にどこかでつまずいていますか?
ありがとう、それは私が必要とするもののように見えます。クロスコンパイルについては、一度に少しずつ段階的ですが、将来的には、ユーザーがビルドしたいアーチの名前を渡すことを望み、このコードを実行する必要はありません。しかし今のところ、私は "自分のシステム上に構築する"というソリューションが必要です。これは合っています。ありがとう! –