1. ホーム
  2. file

ローカルファイルが存在するかどうかをCMakeがチェックする

2023-08-28 11:25:56

質問

私のCMakeスクリプトでは、私のシステム上にファイルがあるかどうかを確認し、それがある場合はそれを使って何かを行い、そうでない場合はデフォルトのファイルで何かを行いたいと思います。以下はそのコードです。

find_file(
          ${project_name}_${customer}_config 
          ${ROOT}/configuration/${customer}/configuration.${project_name}.xml
)

if(NOT ${${project_name}_${customer}_config} STREQUAL
   ${project_name}_${customer}_config-NOTFOUND )
        configure_file(${ROOT}/configuration/${customer}/configuration.${project_name}.xml
                       ${CMAKE_CURRENT_BINARY_DIR}/conf/configuration.xml)
else()
    configure_file(${FAPP_ROOT}/configuration/Default/configuration.${project_name}.xml
                   ${CMAKE_CURRENT_BINARY_DIR}/conf/configuration.xml)
endif()

しかし、これはうまくいかないようです。

CMakeでファイルが存在するかどうかを確認する適切な方法は何ですか?

どのように解決するのですか?

ファイルが存在するかどうかを確認する適切な方法は、ファイルのフルパス名が既に分かっている場合、単純です。

if(EXISTS "${ROOT}/configuration/${customer}/configuration.${project_name}.xml")
   ...
else()
   ...
endif()