mirror of
https://github.com/meekrosoft/fff
synced 2026-01-23 00:15:59 +01:00
Migrate build to CMake and standard github workflows
Replace makefiles with CMakeLists.txt. This will allow for IDE and platform agnostic builds of FFF. Update the CI for FFF to use github workflows which don't depend on MS VC. The workflow added will verify the pull requests sent to master buy running 'buildandtest' which mirrors the developer workflow. Signed-off-by: Yuval Peress <peress@google.com>
This commit is contained in:
31
examples/driver_testing/CMakeLists.txt
Normal file
31
examples/driver_testing/CMakeLists.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
# Copyright 2022 Google LLC
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Create the driver test binary
|
||||
add_executable(driver_test
|
||||
src/driver.c
|
||||
src/driver.test.cpp
|
||||
)
|
||||
target_include_directories(driver_test PRIVATE include)
|
||||
target_link_libraries(driver_test PRIVATE gtest fff)
|
||||
target_compile_definitions(driver_test PUBLIC TEST_USER_OWN_TR1_TUPLE=1 TESTING)
|
||||
|
||||
# Create the driver fff test binary
|
||||
add_executable(driver_fff_test
|
||||
src/driver.c
|
||||
src/driver.test.fff.cpp
|
||||
)
|
||||
target_include_directories(driver_fff_test PRIVATE include)
|
||||
target_link_libraries(driver_fff_test PRIVATE gtest fff)
|
||||
target_compile_definitions(driver_fff_test PUBLIC TEST_USER_OWN_TR1_TUPLE=1 TESTING)
|
||||
|
||||
# Add tests to ctest
|
||||
add_test(
|
||||
NAME driver_test
|
||||
COMMAND $<TARGET_FILE:driver_test>
|
||||
)
|
||||
|
||||
add_test(
|
||||
NAME driver_fff_test
|
||||
COMMAND $<TARGET_FILE:driver_fff_test>
|
||||
)
|
||||
@@ -1,64 +0,0 @@
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
BUILD_DIR = ../../build
|
||||
TEMPLATE_PROGNAME = $(BUILD_DIR)/template
|
||||
CPP_PROGNAME_NOFFF = $(BUILD_DIR)/driver_testing
|
||||
CPP_PROGNAME_FFF = $(BUILD_DIR)/driver_testing_fff
|
||||
CC = gcc
|
||||
CC += -c
|
||||
CPP = g++
|
||||
CPP += -c
|
||||
LD = g++
|
||||
|
||||
GTEST_OBJS = $(BUILD_DIR)/gtest-all.o $(BUILD_DIR)/gtest-main.o
|
||||
C_OBJFILES = $(BUILD_DIR)/driver.o
|
||||
TEMPLATE_OBJFILES = $(BUILD_DIR)/test_suite_template.o
|
||||
FFF_OBJFILES = $(BUILD_DIR)/driver.test.fff.o $(GTEST_OBJS)
|
||||
NOFFF_OBJFILES = $(BUILD_DIR)/driver.test.o $(GTEST_OBJS)
|
||||
CPP_LIBS = -lpthread
|
||||
|
||||
|
||||
all: $(CPP_PROGNAME_NOFFF) $(CPP_PROGNAME_FFF) $(TEMPLATE_PROGNAME)
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
clean:
|
||||
@echo "Cleaning object files"
|
||||
@echo " rm -f $(BUILD_DIR)/*.o"
|
||||
rm -f $(BUILD_DIR)/*.o
|
||||
@echo "Cleaning backups"
|
||||
@echo " rm -f *~"
|
||||
rm -f *~
|
||||
@echo "Removing programs"
|
||||
@echo " rm -f $(CPP_PROGNAME_NOFFF) $(CPP_PROGNAME_FFF) $(TEMPLATE_PROGNAME)"
|
||||
rm -f $(CPP_PROGNAME_NOFFF) $(CPP_PROGNAME_FFF) $(TEMPLATE_PROGNAME)
|
||||
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
@echo "Compiling "$@
|
||||
@echo " CC "$<
|
||||
$(CC) -o $@ $< -DTESTING
|
||||
|
||||
$(BUILD_DIR)/%.o: %.cpp
|
||||
@echo "Compiling "$@
|
||||
@echo " CPP "$<
|
||||
$(CPP) -DGTEST_USE_OWN_TR1_TUPLE=1 -I../.. -o $@ $< -DTESTING
|
||||
|
||||
$(TEMPLATE_PROGNAME): $(TEMPLATE_OBJFILES)
|
||||
@echo "Linking "$@
|
||||
@echo " LD -o "ctemplate" "$(TEMPLATE_OBJFILES)
|
||||
$(LD) -o $(TEMPLATE_PROGNAME) $(TEMPLATE_OBJFILES)
|
||||
|
||||
$(CPP_PROGNAME_FFF): $(FFF_OBJFILES) $(C_OBJFILES)
|
||||
@echo "Linking "$@
|
||||
@echo " LD -o "$(CPP_PROGNAME_FFF)" "$(FFF_OBJFILES)
|
||||
$(LD) -o $(CPP_PROGNAME_FFF) $(FFF_OBJFILES) $(C_OBJFILES) $(CPP_LIBS)
|
||||
|
||||
$(CPP_PROGNAME_NOFFF): $(NOFFF_OBJFILES) $(C_OBJFILES)
|
||||
@echo "Linking "$@
|
||||
@echo " LD -o "$(CPP_PROGNAME_NOFFF)" "$(NOFFF_OBJFILES)
|
||||
$(LD) -o $(CPP_PROGNAME_NOFFF) $(NOFFF_OBJFILES) $(C_OBJFILES) $(CPP_LIBS)
|
||||
|
||||
nothing:
|
||||
@echo "Nothing to do; quitting :("
|
||||
@echo "HINT: Try make all"
|
||||
@@ -3,7 +3,7 @@ extern "C"
|
||||
#include "driver.h"
|
||||
#include "registers.h"
|
||||
}
|
||||
#include "../../fff.h"
|
||||
#include "../../../fff.h"
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ extern "C"{
|
||||
#include "registers.h"
|
||||
#include "hardware_abstraction.h"
|
||||
}
|
||||
#include "../../fff.h"
|
||||
#include "fff.h"
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
DEFINE_FFF_GLOBALS;
|
||||
Reference in New Issue
Block a user