Skip to content

Instantly share code, notes, and snippets.

@BourneID
Created November 16, 2011 06:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BourneID/1369416 to your computer and use it in GitHub Desktop.
Save BourneID/1369416 to your computer and use it in GitHub Desktop.
GTest&GMock Unit Test Project Makefile Template
#
# GTest&GMock Unit Test Project Makefile Template
#
SUT_INC_DIR=../inc
SUT_SRC_DIR=../src
SUT_OBJ_DIR=../obj
UNIT_TEST_INC_DIR=.
UNIT_TEST_SRC_DIR=.
UNIT_TEST_OBJ_DIR=obj
UNIT_TEST_EXE_DIR=.
GTEST_INC_DIR = ../../gmock/gtest/include
GTEST_LIB_DIR = ../../gmock/gtest/make
GMOCK_INC_DIR = ../../gmock/include
GMOCK_LIB_DIR = ../../gmock/make
MUTILS_INC_DIR = ../../MtUtils/inc
LIB_DIR = ../../bin/libs
# addtional includes
CXX_GTEST_INCS = -I"$(UNIT_TEST_INC_DIR)" \
-I"$(GTEST_INC_DIR)" \
-I"$(GMOCK_INC_DIR)" \
-I"$(SUT_INC_DIR)" \
-I"$(SUT_INC_DIR)/entity" \
-I"$(SUT_INC_DIR)/gpb" \
-I"$(SUT_INC_DIR)/http" \
-I"$(SUT_INC_DIR)/msg" \
-I"$(SUT_INC_DIR)/url" \
-I"$(SUT_INC_DIR)/xml" \
-I"$(MUTILS_INC_DIR)" \
-I"$(LIB_XML2_DIR)" \
# Compile command
CPP = g++ -c -D_GNU_SOURCE -fPIC -g -Wall -Wextra
TEST_LINK = g++ -g -pthread -lpthread -lrt -L"$(GMOCK_LIB_DIR)" -lgmock\
-L"$(LIB_DIR)" -lMtUtils -lMtProtocol -lxml2
# Test Target
TEST_TARGET = $(UNIT_TEST_EXE_DIR)/unit_test
TEST_TARGET_OBJS = $(UNIT_TEST_OBJ_DIR)/MKeyValueFieldUT.o
ALL = MK_DIR $(TEST_TARGET)
# make beging
all: $(ALL)
$(TEST_TARGET):$(TEST_TARGET_OBJS)
$(TEST_LINK) $^ -o $@
$(UNIT_TEST_OBJ_DIR)/MKeyValueFieldUT.o:$(UNIT_TEST_SRC_DIR)/msg/MKeyValueFieldUT.cpp
$(CPP) $(CXX_GTEST_INCS) $^ -o $@
# .... other objs
MK_DIR:
mkdir -p $(UNIT_TEST_OBJ_DIR)
mkdir -p $(SUT_OBJ_DIR)
clean:
rm -rf $(UNIT_TEST_OBJ_DIR) $(TEST_TARGET) $(SUT_OBJ_DIR)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment