1

かなり大きなプロジェクト用に cmake システムをセットアップしようとしていますが、プロジェクトの各サブディレクトリにあるすべてのファイルに対して、一意の定義を C++ コンパイラに渡す段階で行き詰まりました。私がしたことは:

CMakeLists.txt の最上位ディレクトリ:

set_property(
    DIRECTORY
    APPEND PROPERTY COMPILE_DEFINITIONS LOG_FAPP_PKG=CORE
)

その後

add_subdirectory(Modules)

CMakeListst.txt の Modules サブディレクトリ内:

add_subdirectory(ModuleConfigurationProvider)
set_property(
    DIRECTORY ModuleConfigurationProvider
    APPEND PROPERTY COMPILE_DEFINITIONS LOG_FAPP_MODULE=CONFPROVIDER
)

しかし、Makefile で得られるのは、定義されている最初のレベル (つまり、LOG_FAPP_PKG) だけであり、2 番目のレベル (LOG_FAPP_MODULE) は完全に無視されます。

また、 ModuleConfigurationProvider ディレクトリに CMakeLists.txt を入れようとしました

set_property(
    DIRECTORY
    APPEND PROPERTY COMPILE_DEFINITIONS LOG_FAPP_MODULE=CONFIGPROVIDER
)

またはさえ

add_definitions(-DLOG_FAPP_MODULE=CONFIGPROVIDER)

しかし、まだ機能していません。現在のディレクトリの定義を印刷したところ、ディレクトリに正しく表示されましたが、生成されたメイクファイルに反映されていないようです。

私が間違って何をしているのか分かりますか?

4

0 に答える 0