簡體   English   中英

如何在cmake工具鏈文件中獲取項目根目錄,可能嗎?

[英]How to get project root directory inside cmake toolchain file, is it possible?

我正在做跨平台構建,並嘗試使用cmake。 因此,我創建了my-toolchain-file.cmake,其中自定義了c ++鏈接器命令。 我的裸機人員的鏈接可以這樣完成:

set(CMAKE_CXX_LINK_EXECUTABLE
      "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${SDK_ROOT}/Libraries/${BUILD_TARGET}/${BUILD_TYPE}/memory.a -o <TARGET_BASE>"
      "if not exist <TARGET_BASE> ( mkdir <TARGET_BASE> )"
      "${SDK_ROOT}/Tools/CommandLineTools/Make/MakeBin.exe <TARGET_BASE> <TARGET_BASE>/main"
      "${SDK_ROOT}/Tools/CommandLineTools/Make/MakeManifest.exe --desc ${APP_DESC} --meta ${APP_META} -o <TARGET_BASE>/main.m"
      "copy ${SDK_ROOT_WIN}\\Libraries\\${BUILD_TARGET}\\${BUILD_TYPE}\\syslib.so <TARGET_BASE>\\rtld >NUL"
      "copy ${SDK_ROOT_WIN}\\Libraries\\${BUILD_TARGET}\\${BUILD_TYPE}\\Sdk.so <TARGET_BASE>\\sdk >NUL"
      "${SDK_ROOT}/Tools/SomeTool.exe createimage -o <TARGET_BASE> --desc ${APP_DESC} --meta ${APP_META} --type Exe --program <TARGET_BASE>bin"
      "rmdir /S /Q <TARGET_BASE>"
      "del /Q <TARGET_BASE>"
    )

在自定義的鏈接器命令中,我必須獲取清單文件的路徑,該清單文件相對於項目CMakeLists.txt而不是工具鏈文件。 如何在工具鏈文件中設置APP_META變量? 我嘗試:

set(APP_META "${CMAKE_CURRENT_LIST_DIR}/Application.manifest")

它不起作用(工具鏈文件和CMakeLists.txt在不同的位置)。 如何獲取cmake工具鏈文件中的根目錄路徑? 提前致謝!

看起來CMAKE_CURRENT_SOURCE_DIR對我有用。

set(APP_META "${CMAKE_CURRENT_SOURCE_DIR}/Application.manifest")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM