创建CMake查找包

时间:2014-11-23 13:39:36

标签: cmake

我正在尝试为德州仪器开发板创建一个find_package文件。这是代码。

set(TIVAWARE_DIR $ENV{TIVAWARE})

if (NOT TIVAWARE_DIR)
  message(STATUS "TIVAWARE_DIR not set")
endif()

message(STATUS "Found TivaWare at ${TIVAWARE_DIR}")

find_path(TIVAWARE_INCLUDE_DIR
  NAMES tm4c123gh6pm.h
  HINTS ${TIVAWARE_DIR}/inc
  DOC "The TivaWare include directory."
)
message(STATUS "==== ${TIVAWARE_INCLUDE_DIR}")

find_library(TIVAWARE_LIBRARY_DIR
  NAMES libdriver
  HINTS ${TIVAWARE_DIR}/driverlib/gcc
  DOC "The TivaWare driver library path."
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(TIVAWARE DEFAULT_MSG TIVAWARE_INCLUDE_DIR TIVAWARE_LIBRARY_DIR)

if(TIVAWARE_FOUNT)
  set(TIVAWARE_LIBRARIES ${TIVAWARE_LIBRARY_DIR})
  set(TIVAWARE_INCLUDE_DIRS ${TIVAWARE_INCLUDE_DIR})
  set(TIVAWARE_DEFINITIONS)
endif()

mark_as_advanced(TIVAWARE_INCLUDE_DIR TIVAWARE_LIBRARY_DIR)

此文件定义并找到环境变量。但它无法找到包含和库文件。这是我得到的输出的一部分。

Cross-compiling with the gcc-arm-embedded toolchain
Toolchain prefix: e:/armtm/armgcc/arm-none-eabi
Eclipse version is set to 3.6 (Helios). Adjust CMAKE_ECLIPSE_VERSION if this is wrong.
Found TivaWare at e:\armtm\swtm4c
==== TIVAWARE_INCLUDE_DIR-NOTFOUND

如果有人可以帮我解决这个问题,我将不胜感激。

由于

1 个答案:

答案 0 :(得分:-2)

实际上你真的不应该写这些脚本。他们完全是浪费时间。

你在德州仪器公司工作吗?如果这样做,有比这些Find * .cmake脚本更好的方法。

如果你不这样做,那就

set(TIVAWARE_INCLUDE_DIR "${TIVAWARE_DIR}/inc" CACHE PATH "")

然后回去完成工作。 :)