によると、私はCMakeの既存のC++プロジェクトを移行していますビルドからファイルを除外します。 このプロジェクトでは、一部のソースファイルは、Visual Studioの一般設定プロパティでExcluded from Build
とマークされています(リリースモード)。CMakeのは、コンフィギュレーション
私はCMakeLists.txt
でこの動作を再現する方法を見つけようとしています。私はまだ私の除外-ME-の内容をラップすることができ
Target "Tardis" has source files which vary by configuration. This is not supported by the "Visual Studio 14 2015 Win64" generator.
:これまでのところ私は、ジェネレータ式でtarget_sources()
を使用して試してみた:
set(_srcs Doctor.cpp Clara.cpp)
set(_headers Doctor.hpp Clara.hpp)
add_library(Tardis SHARED ${_srcs} ${_headers})
target_sources(Tardis PRIVATE $<$<CONFIG:Debug>:Dalek.cpp>)
しかし、私はステップの生成において、CMakeのエラーで終了しますin-release-mode大きなファイル#ifdef _DEBUG
がありますが、元のプロジェクトからソースファイルを変更しないような解決策を実際に探しています。
私はCMake 3.8を使用しており、必要最小限は3.7です。
楽しい一日を!
リリースモードであれば、単ににファイルを追加します'_srcs'? –
MSVCではうまくいきません。これは複数の構成IDEです。 Makefiles Generatorsとは異なり、DebugまたはReleaseが生成ステップで設定されていますが、MSVCではこれがビルドステップです。その時点では、 '_srcs'は既に定義されており、変更することはできません。したがって、ビルドステップでソースファイルを変更するには、ジェネレータの式を使用します。 –
Visual Studioでこのソリューションをテストすることさえできませんでした。) 'CMAKE_BUILD_TYPE'は何も展開しません。 –