CMake fix_bundle, как игнорировать встроенную DLL - PullRequest
2 голосов
/ 10 января 2020

В моей системе есть некоторые dll, которые связаны с другими встроенными исполняемыми файлами, например команды из MSYS.

Структура каталогов:

MySystem/
  |_ mysystem.exe
  |_ CMakeLists.txt
  |_ embedded system/
      |_ msys_command1.exe
      |_ msys_command2.exe
      |_ msys-1.0.dll

Когда она запускает fixup_bundle из CMake, это предупреждение Показано:

EXEC : warning : cannot resolve item 'msys-1.0.dll'

  possible problems:
    need more directories?
    need to use InstallRequiredSystemLibraries?
    run in install tree instead of build tree?

EXEC : -- warning : gp_resolved_file_type non-absolute file 'msys-1.0.dll' returning type 'other' -- possibly incorrect
--
EXEC : warning : cannot resolve item 'msys-1.0.dll'

  possible problems:
    need more directories?
    need to use InstallRequiredSystemLibraries?
    run in install tree instead of build tree?

Команды MSYS находятся во встроенном каталоге программного обеспечения. Если я поместил встроенный каталог в пути fixup_bundle, библиотеки будут скопированы в мой исполняемый каталог, но я не хочу, чтобы такое поведение.

Есть ли способ игнорировать эти библиотеки?

I Я пытался с макросом fixup_bundle IGNORE_ITEM, но это не сработало.

Кроме того, проблема распространяется на CPack:

  CPack: Create package using NSIS
  CPack: Install projects
  CPack: - Install project: MySystem
  Error copying file "msys-1.0.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/msys-1.0.dll".
  Error copying file "msys-intl-8.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/msys-intl-8.dll".
  Error copying file "Qt5Core.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/Qt5Core.dll".
  Error copying file "Qt5Gui.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/Qt5Gui.dll".
  Error copying file "Qt5Network.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/Qt5Network.dll".
  Error copying file "Qt5Widgets.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/Qt5Widgets.dll".
  Error copying file "libprotobuf.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/libprotobuf.dll".
  Error copying file "lua.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/lua.dll".
  Error copying file "qwt.dll" to "D:/mysystem/solution/build/_CPack_Packages/win64/NSIS/MySystem/qwt.dll".
  CPack: Create package
...