make -如何将googletest库列为依赖项



我能够构建googletest并使用它来运行单元测试。

我在<<p> strong>unit_test.cppmakefile,我需要检查是否存在googletest填词..googletest且仅当他们不存在,我想运行cmakegoogletest

。运行cmake和make,即使它们已经构建,也需要30秒,所以我只想在实际需要的时候运行cmake和make。

我在<<p> strong> makefile for我的unit_test.cpp,我可以列出什么作为依赖关系,以便构建googletest

只在实际需要时发生?"蛮力";方法是列出googletestbuildliblibgtest.a但这将打破如果,不过不太可能,googletest改变输出的名字从liblibs

如果您担心build目录下的文件布局可能发生变化,可以使用cmake --install命令直接指定头文件和库的子文件夹,然后再执行cmake configure步骤。CMAKE_INSTALL_PREFIX变量允许指定安装目录,CMAKE_INSTALL_INCLUDEDIRCMAKE_INSTALL_LIBDIR变量允许指定头文件和库的子文件夹,相应的:

GOOGLETEST_SRC_DIR := googletest
GOOGLETEST_BUILD_CACHE_DIR := googletest_build_cache
GOOGLETEST_SDK_DIR := googletest_sdk
GOOGLETEST_SDK_INCLUDE_DIR := include
GOOGLETEST_SDK_LIB_DIR := lib
GOOGLETEST_LIB := gtest
GOOGLETEST_MAIN_LIB := $(GOOGLETEST_LIB)_main
UT := ut
UT_SRC := ut.cpp
default_target: $(UT)
$(GOOGLETEST_BUILD_CACHE_DIR) :
cmake                                                       
-DCMAKE_INSTALL_PREFIX=$(shell pwd)/$(GOOGLETEST_SDK_DIR) 
-DCMAKE_INSTALL_LIBDIR=$(GOOGLETEST_SDK_LIB_DIR)          
-DCMAKE_INSTALL_INCLUDEDIR=$(GOOGLETEST_SDK_INCLUDE_DIR)  
-B $(GOOGLETEST_BUILD_CACHE_DIR) -S $(GOOGLETEST_SRC_DIR)
cmake --build $(GOOGLETEST_BUILD_CACHE_DIR) --parallel
touch $(GOOGLETEST_BUILD_CACHE_DIR)
$(GOOGLETEST_SDK_DIR): $(GOOGLETEST_BUILD_CACHE_DIR)
cmake --install $(GOOGLETEST_BUILD_CACHE_DIR)
touch $(GOOGLETEST_SDK_DIR)
$(UT): $(UT_SRC) $(GOOGLETEST_SDK_DIR)
g++ $(UT_SRC) -o $(UT)                                  
-I$(GOOGLETEST_SDK_DIR)/$(GOOGLETEST_SDK_INCLUDE_DIR) 
-L$(GOOGLETEST_SDK_DIR)/$(GOOGLETEST_SDK_LIB_DIR)     
-l$(GOOGLETEST_MAIN_LIB) -l$(GOOGLETEST_LIB)
clean:
rm -f $(UT)
rm -fR $(GOOGLETEST_BUILD_CACHE_DIR) $(GOOGLETEST_SDK_DIR)

相关内容

  • 没有找到相关文章

最新更新