Синтаксис CMake для установки пользовательских сгенерированных файлов - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь сделать так, чтобы следующий фрагмент кода cmake обрабатывал случай, когда пользователь вызывает cpack из окна cmd (вместо того, чтобы изнутри Visual Studio нажимать на цель «ПАКЕТ»).В настоящее время происходит сбой:

c:\tmp>cpack.exe -G ZIP
CPack: Create package using ZIP
CPack: Install projects
CPack: - Install project: GDCM
CMake Error at C:/tmp/gdcm-swig-x64/Wrapping/Csharp/cmake_install.cmake:60 (file):
  file INSTALL cannot find
  "C:/tmp/gdcm-swig-x64/bin//gdcm-sharp.dll".
Call Stack (most recent call first):
  C:/tmp/gdcm-swig-x64/cmake_install.cmake:51 (include
)

CPack Error: Error when generating package: GDCM

Текущий код основан на здесь .И это похоже на ( полный код ):

set(GDCM_LIBRARY_DIR2 ${LIBRARY_OUTPUT_PATH}/\${BUILD_TYPE})
install(FILES ${GDCM_LIBRARY_DIR2}/gdcm_csharp.dll
  DESTINATION ${GDCM_INSTALL_LIB_DIR} COMPONENT Runtime
)

, где gdcm_csharp.dll генерируется через add_custom_command, например:

add_custom_command(
  OUTPUT ${GDCM_LIBRARY_DIR}/gdcm_csharp.dll
  COMMAND ${CMAKE_CSHARP_COMPILER} ARGS "/t:library" "/out:${GDCM_LIBRARY_DIR}/gdcm_csharp.dll" "*.cs"
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  DEPENDS "${swig_generated_file_fullname}" ${CMAKE_CURRENT_BINARY_DIR}/AssemblyInfo.cs
  COMMENT "csc *.cs"
)

Есть лиспособ исправить install(FILES) команду для обработки обоих случаев (как в Visual Studio, так и за ее пределами)?

1 Ответ

0 голосов
/ 05 июня 2019

Чтобы выполнить цель PACKAGE без явного запуска Visual Studio, вы можете сделать следующее:

cmake --build C:/tmp/gdcm-swig-x64/ --config Release --target PACKAGE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...