我正在将一个使用CMake构建的组件添加到一个目前使用makefiles的大型项目中。项目中有一个名为“配置”的单一makefile,其中包含一些逻辑,其中之一是设置目标目录以形成make变量。通过设置MAKEFILES环境变量将配置makefiles包含在当前构建中,并且实际的构建makefiles在构建和链接到这些目录中的工件时引用这些变量,例如:
# in config.mk
...
MY_TARGET_LIB_DIR=...
# in a build makefile
TGT_LIB=$(MY_TARGET_LIB_DIR)/libsomething.so
# in another build makefile
LDFLAGS=-L$(MY_TARGET_LIB_DIR)
我希望能够在CMake生成的makefile中使用它,即让CMake为我生成一个makefile,在变量MY_TARGET_LIB_DIR所引用的目录中构建一个库(本例中为静态库),另一个库链接到该目录中的库。
我尝试了如下代码:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY $(MY_TARGET_LIB_DIR))
但是没有成功 - 这只会导致生成的 makefile 输出到一个名为
$(MY_TARGET_LIB_DIR)
的子目录中。有解决办法吗?
$(variable_name)
字符串来实现的。通过-D传递值可能是一个解决方案,但是我如何获取变量的值呢?我是否需要从一个makefile中运行CMake来生成另一个makefile? - AndrzejJ