From fdb1b174004dead5646fde8124033b2decdee596 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 13:41:58 +0100 Subject: [PATCH 01/21] Starting to build CMake build system. On branch buildsystem/cmake Changes to be committed: new file: CMakeLists.txt deleted: Makefile modified: bin/project.sh deleted: build/Makefile new file: docs/CMakeLists.txt new file: src/CMakeLists.txt --- CMakeLists.txt | 6 +++ Makefile | 37 ----------------- bin/project.sh | 9 +++-- build/Makefile | 96 --------------------------------------------- docs/CMakeLists.txt | 12 ++++++ src/CMakeLists.txt | 17 ++++++++ 6 files changed, 40 insertions(+), 137 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 Makefile delete mode 100644 build/Makefile create mode 100644 docs/CMakeLists.txt create mode 100644 src/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1484cbb --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 2.8) + +project(verilog-parser) + +add_subdirectory(./src) +add_subdirectory(./docs) diff --git a/Makefile b/Makefile deleted file mode 100644 index e9f0ed3..0000000 --- a/Makefile +++ /dev/null @@ -1,37 +0,0 @@ - - -##------------------------------------------------------------------------ -## Auxiliary Rules and Actions -##------------------------------------------------------------------------ - -.PHONY : docs - -all: app docs - -app: - $(MAKE) -C build/ all - -app-with-coverage: - $(MAKE) -C build/ with-coverage - -coverage-report: - bin/test-coverage.sh - -view-coverage-report: coverage-report - xdg-open ./build/cov-report/index.html - -clean: - $(MAKE) -C build/ clean - $(MAKE) -C docs/ clean - -docs: - $(MAKE) -C docs/ docs - -test: app - bin/run-tests.sh - -setup: - bin/project.sh - -fromclean: clean all - diff --git a/bin/project.sh b/bin/project.sh index c05ec06..47bf7d9 100755 --- a/bin/project.sh +++ b/bin/project.sh @@ -9,10 +9,11 @@ cd ../ # Create build directory structure. mkdir -p build -mkdir -p build/obj -mkdir -p build/gen -mkdir -p build/lib -mkdir -p build/bin +mkdir -p build/docs + +cd ./build +cmake .. +cd .. echo " " echo "Project workspace setup complete." diff --git a/build/Makefile b/build/Makefile deleted file mode 100644 index 5e14de2..0000000 --- a/build/Makefile +++ /dev/null @@ -1,96 +0,0 @@ - -##------------------------------------------------------------------------ -## Compiler Tools & Flags -##------------------------------------------------------------------------ - -OBJ_DIR = ./obj -LIB_DIR = ./lib -BIN_DIR = ./bin -GEN_DIR = ./gen - -SRC_DIR = ../src - -CC = gcc -CC_FLAGS = -g -Wall -I$(SRC_DIR) -I$(GEN_DIR) -O0 - -COVERAGE_FLAGS = -fprofile-arcs -ftest-coverage --coverage - -AR = ar -AR_FLAGS = rcs - -##------------------------------------------------------------------------ -## Auxiliary Rules and Actions -##------------------------------------------------------------------------ - -all: parser-app parser-lib - -with-coverage: CC_FLAGS += -DDEBUG -g $(COVERAGE_FLAGS) -with-coverage: parser-app parser-lib - -clean: - rm -f $(OBJ_DIR)/* - rm -f $(LIB_DIR)/* - rm -f $(BIN_DIR)/* - rm -f $(GEN_DIR)/* - rm -f *.gcov *.info *.log - rm -rf ./coverage/* - -fromclean: clean all - -##------------------------------------------------------------------------ -## BISON & FLEX Source, Output and Options -##------------------------------------------------------------------------ - -FLEX_IN = $(SRC_DIR)/verilog_scanner.l -FLEX_OUT = $(GEN_DIR)/verilog_scanner.c - -BISON_IN = $(SRC_DIR)/verilog_parser.y -BISON_OUT = $(GEN_DIR)/verilog_parser.tab.c - -FLEX_OPTS = --yylineno -BISON_OPTS = - -$(GEN_DIR)/%.c : $(SRC_DIR)/%.l - flex $(FLEX_OPTS) -o $(FLEX_OUT) $(FLEX_IN) - -$(GEN_DIR)/%.tab.c : $(SRC_DIR)/%.y - bison $(BISON_OPTS) -o $(BISON_OUT) $(BISON_IN) - -##------------------------------------------------------------------------ -## C Source and Object Code -##------------------------------------------------------------------------ - -LIB_NAME = verilogparser -LIB_FILE = $(LIB_DIR)/lib$(LIB_NAME).a - -APP_NAME = verilog-app -APP_OUT = $(BIN_DIR)/$(APP_NAME) - -APP_OBJ = $(OBJ_DIR)/main.o - -SRC_OBJS = $(OBJ_DIR)/verilog_ast.o \ - $(OBJ_DIR)/verilog_ast_common.o \ - $(OBJ_DIR)/verilog_parser_wrapper.o \ - $(OBJ_DIR)/verilog_preprocessor.o - -GEN_OBJS = $(OBJ_DIR)/verilog_parser.tab.o \ - $(OBJ_DIR)/verilog_scanner.o - - -parser-lib : $(GEN_OBJS) $(FLEX_OUT) $(BISON_OUT) $(SRC_OBJS) - $(AR) $(AR_FLAGS) $(LIB_FILE) $(SRC_OBJS) $(GEN_OBJS) - -parser-app : parser-lib $(APP_OBJ) - $(CC) $(CC_FLAGS) \ - -static $(APP_OBJ) \ - -L$(LIB_DIR) \ - -l$(LIB_NAME) \ - -o $(APP_OUT) - -# Rule for human written source files. -$(OBJ_DIR)/%.o : $(SRC_DIR)/%.c - $(CC) $(CC_FLAGS) -o $@ -c $< - -# Rule for generated source files. -$(OBJ_DIR)/%.o : $(GEN_DIR)/%.c - $(CC) $(CC_FLAGS) -o $@ -c $< diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt new file mode 100644 index 0000000..028d5a1 --- /dev/null +++ b/docs/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 2.8) + +project(verilog-parser-docs) + +find_package(Doxygen) +if(DOXYGEN_FOUND) + add_custom_target(doc + ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating API documentation with Doxygen" VERBATIM + ) +endif(DOXYGEN_FOUND) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..99ab57b --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 2.8) + +project(verilog-parser-src) + + +FIND_PACKAGE(BISON REQUIRED) +FIND_PACKAGE(FLEX REQUIRED) + +ADD_CUSTOM_COMMAND( + SOURCE ${Foo_SOURCE_DIR}/src/verilog_scanner.l + COMMAND ${FLEX_EXECUTABLE} + ARGS -o${Foo_BINARY_DIR}/src/verilog_scanner.c + ${Foo_SOURCE_DIR}/src/verilog_scanner.l + TARGET PARSER_LIB + OUTPUTS ${Foo_BINARY_DIR}/src/verilog_scanner.c +) + From 1065a9c7b8d8a85a8ac24e040f2f97386542abc8 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 13:47:40 +0100 Subject: [PATCH 02/21] unzip sparc tests by default. --- bin/setup-tests.sh | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/bin/setup-tests.sh b/bin/setup-tests.sh index 101c39b..465bb09 100755 --- a/bin/setup-tests.sh +++ b/bin/setup-tests.sh @@ -23,14 +23,10 @@ function downloadModelTest { fi } -if [ "$CI" -eq "true" ] -then - echo "Not unpacking SPARC test set yet..." -else - echo "Unzipping SPARC test set..." - unzip -o ../bin/sparct1.zip -fi +echo "Unzipping SPARC test set..." +unzip -o ../bin/sparct1.zip +exit 0 echo "Downloading Tests..." From dc3be95d4357ee349002bf347d7d098139670faf Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 13:48:33 +0100 Subject: [PATCH 03/21] don't download any tests for now --- bin/setup-tests.sh | 212 ++++++++++++++++++++++----------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/bin/setup-tests.sh b/bin/setup-tests.sh index 465bb09..93f850b 100755 --- a/bin/setup-tests.sh +++ b/bin/setup-tests.sh @@ -26,109 +26,109 @@ function downloadModelTest { echo "Unzipping SPARC test set..." unzip -o ../bin/sparct1.zip -exit 0 - -echo "Downloading Tests..." - -downloadModelTest arbiter_tb.v -downloadModelTest clk_div_45.v -downloadModelTest concatenation.v -downloadModelTest d_latch_gates.v -downloadModelTest d_latch_switch.v -downloadModelTest decoder_2to4_gates.v -downloadModelTest decoder_using_assign.v -downloadModelTest decoder_using_case.v -downloadModelTest delay_example.v -downloadModelTest dff_udp.v -downloadModelTest dlatch_reset.v -downloadModelTest encoder_4to2_gates.v -downloadModelTest encoder_using_case.v -downloadModelTest full_adder_gates.v -downloadModelTest jkff_udp.v -downloadModelTest latch_udp.v -downloadModelTest lfsr.v -downloadModelTest lfsr_updown.v -downloadModelTest lfsr_updown_tb.v -downloadModelTest misc1.v -downloadModelTest mux21_switch.v -downloadModelTest mux_21_udp.v -downloadModelTest mux_using_assign.v -downloadModelTest mux_using_case.v -downloadModelTest mux_using_if.v -downloadModelTest n_in_primitive.v -downloadModelTest nand_switch.v -downloadModelTest not_switch.v -downloadModelTest parity_using_assign.v -downloadModelTest port_declaration.v -downloadModelTest pri_encoder_using_assign.v -downloadModelTest pri_encoder_using_if.v -downloadModelTest primitives.v -downloadModelTest ram_dp_ar_aw.v -downloadModelTest ram_dp_sr_sw.v -downloadModelTest ram_sp_ar_aw.v -downloadModelTest rom.v -downloadModelTest serial_crc.v -downloadModelTest srff_udp.v -downloadModelTest syn_fifo.v -downloadModelTest t_gate_switch.v -downloadModelTest uart.v -downloadModelTest xor2_input.v -downloadModelTest xor_switch.v -downloadTutorialTest addbit.v -downloadTutorialTest adder_hier.v -downloadTutorialTest and_from_nand.v -downloadTutorialTest ansiport_example.v -downloadTutorialTest arbiter.v -downloadTutorialTest avoid_latch_else.v -downloadTutorialTest bitwise_operators.v -downloadTutorialTest buf_gate.v -downloadTutorialTest buf_gate1.v -downloadTutorialTest bus_wr_rd_task.v -downloadTutorialTest casex_example.v -downloadTutorialTest comma_example.v -downloadTutorialTest concatenation_operator.v -downloadTutorialTest conditional_operator.v -downloadTutorialTest counterMonitor.v -downloadTutorialTest counterTestGen.v -downloadTutorialTest decoder.v -downloadTutorialTest decoder_always.v -downloadTutorialTest defparam_example.v -downloadTutorialTest delay.v -downloadTutorialTest delay_example.v -downloadTutorialTest dff_async_reset_async_preset.v -downloadTutorialTest dff_from_nand.v -downloadTutorialTest dff_sync_reset_sync_preset.v -downloadTutorialTest fifo_tb.v -downloadTutorialTest first_counter.v -downloadTutorialTest first_counter_tb.v -downloadTutorialTest flip_flop.v -downloadTutorialTest fsm_full_tb.v -downloadTutorialTest gates.v -downloadTutorialTest hello_pli.v -downloadTutorialTest hello_world.v -downloadTutorialTest implicit.v -downloadTutorialTest initial_fork_join.v -downloadTutorialTest logical_operators.v -downloadTutorialTest multi_array.v -downloadTutorialTest mux.v -downloadTutorialTest mux_from_gates.v -downloadTutorialTest mux_from_gates.v -downloadTutorialTest n_in_primitive -downloadTutorialTest n_out_primitive.v -downloadTutorialTest named_block_disable.v -downloadTutorialTest parallel.v -downloadTutorialTest param_more_then_one.v -downloadTutorialTest param_more_then_one1.v -downloadTutorialTest param_overide_instance_example.v -downloadTutorialTest quest_for_in.v -downloadTutorialTest quest_for_out.v -downloadTutorialTest switch_primitives.v -downloadTutorialTest syn_fifo_psl.v -downloadTutorialTest task_calling.v -downloadTutorialTest task_global.v -downloadTutorialTest test_tri.v -downloadTutorialTest test_trireg.v -downloadTutorialTest test_wor.v -downloadTutorialTest transmission_gates.v -downloadTutorialTest udp_body_tb.v -downloadTutorialTest which_clock.v +#exit 0 +# +#echo "Downloading Tests..." +# +#downloadModelTest arbiter_tb.v +#downloadModelTest clk_div_45.v +#downloadModelTest concatenation.v +#downloadModelTest d_latch_gates.v +#downloadModelTest d_latch_switch.v +#downloadModelTest decoder_2to4_gates.v +#downloadModelTest decoder_using_assign.v +#downloadModelTest decoder_using_case.v +#downloadModelTest delay_example.v +#downloadModelTest dff_udp.v +#downloadModelTest dlatch_reset.v +#downloadModelTest encoder_4to2_gates.v +#downloadModelTest encoder_using_case.v +#downloadModelTest full_adder_gates.v +#downloadModelTest jkff_udp.v +#downloadModelTest latch_udp.v +#downloadModelTest lfsr.v +#downloadModelTest lfsr_updown.v +#downloadModelTest lfsr_updown_tb.v +#downloadModelTest misc1.v +#downloadModelTest mux21_switch.v +#downloadModelTest mux_21_udp.v +#downloadModelTest mux_using_assign.v +#downloadModelTest mux_using_case.v +#downloadModelTest mux_using_if.v +#downloadModelTest n_in_primitive.v +#downloadModelTest nand_switch.v +#downloadModelTest not_switch.v +#downloadModelTest parity_using_assign.v +#downloadModelTest port_declaration.v +#downloadModelTest pri_encoder_using_assign.v +#downloadModelTest pri_encoder_using_if.v +#downloadModelTest primitives.v +#downloadModelTest ram_dp_ar_aw.v +#downloadModelTest ram_dp_sr_sw.v +#downloadModelTest ram_sp_ar_aw.v +#downloadModelTest rom.v +#downloadModelTest serial_crc.v +#downloadModelTest srff_udp.v +#downloadModelTest syn_fifo.v +#downloadModelTest t_gate_switch.v +#downloadModelTest uart.v +#downloadModelTest xor2_input.v +#downloadModelTest xor_switch.v +#downloadTutorialTest addbit.v +#downloadTutorialTest adder_hier.v +#downloadTutorialTest and_from_nand.v +#downloadTutorialTest ansiport_example.v +#downloadTutorialTest arbiter.v +#downloadTutorialTest avoid_latch_else.v +#downloadTutorialTest bitwise_operators.v +#downloadTutorialTest buf_gate.v +#downloadTutorialTest buf_gate1.v +#downloadTutorialTest bus_wr_rd_task.v +#downloadTutorialTest casex_example.v +#downloadTutorialTest comma_example.v +#downloadTutorialTest concatenation_operator.v +#downloadTutorialTest conditional_operator.v +#downloadTutorialTest counterMonitor.v +#downloadTutorialTest counterTestGen.v +#downloadTutorialTest decoder.v +#downloadTutorialTest decoder_always.v +#downloadTutorialTest defparam_example.v +#downloadTutorialTest delay.v +#downloadTutorialTest delay_example.v +#downloadTutorialTest dff_async_reset_async_preset.v +#downloadTutorialTest dff_from_nand.v +#downloadTutorialTest dff_sync_reset_sync_preset.v +#downloadTutorialTest fifo_tb.v +#downloadTutorialTest first_counter.v +#downloadTutorialTest first_counter_tb.v +#downloadTutorialTest flip_flop.v +#downloadTutorialTest fsm_full_tb.v +#downloadTutorialTest gates.v +#downloadTutorialTest hello_pli.v +#downloadTutorialTest hello_world.v +#downloadTutorialTest implicit.v +#downloadTutorialTest initial_fork_join.v +#downloadTutorialTest logical_operators.v +#downloadTutorialTest multi_array.v +#downloadTutorialTest mux.v +#downloadTutorialTest mux_from_gates.v +#downloadTutorialTest mux_from_gates.v +#downloadTutorialTest n_in_primitive +#downloadTutorialTest n_out_primitive.v +#downloadTutorialTest named_block_disable.v +#downloadTutorialTest parallel.v +#downloadTutorialTest param_more_then_one.v +#downloadTutorialTest param_more_then_one1.v +#downloadTutorialTest param_overide_instance_example.v +#downloadTutorialTest quest_for_in.v +#downloadTutorialTest quest_for_out.v +#downloadTutorialTest switch_primitives.v +#downloadTutorialTest syn_fifo_psl.v +#downloadTutorialTest task_calling.v +#downloadTutorialTest task_global.v +#downloadTutorialTest test_tri.v +#downloadTutorialTest test_trireg.v +#downloadTutorialTest test_wor.v +#downloadTutorialTest transmission_gates.v +#downloadTutorialTest udp_body_tb.v +#downloadTutorialTest which_clock.v From a588a4fcc4c8c79ca2b44641ab1c51c449dc175f Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 13:49:38 +0100 Subject: [PATCH 04/21] Integrated documentation building into cmake On branch buildsystem/cmake Changes to be committed: modified: ../docs/CMakeLists.txt --- docs/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 028d5a1..ab5ff76 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -4,8 +4,8 @@ project(verilog-parser-docs) find_package(Doxygen) if(DOXYGEN_FOUND) - add_custom_target(doc - ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + add_custom_target(docs + ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM ) From 39f885d68a4e9ee55d3ca97c160fbd01d95af5a2 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 14:00:57 +0100 Subject: [PATCH 05/21] Can now build parser app and library with CMake On branch buildsystem/cmake Changes to be committed: modified: ../src/CMakeLists.txt --- src/CMakeLists.txt | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 99ab57b..dd729de 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,16 +2,53 @@ cmake_minimum_required(VERSION 2.8) project(verilog-parser-src) +set(LIBRARY_NAME verilogparser) +set(EXECUTABLE_NAME parser) FIND_PACKAGE(BISON REQUIRED) FIND_PACKAGE(FLEX REQUIRED) +set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) + +set(FLEX_INPUT verilog_scanner.l) +set(FLEX_OUTPUT verilog_scanner.c) + +set(BISON_INPUT verilog_parser.y) +set(BISON_OUTPUT verilog_parser.tab.c) + +ADD_CUSTOM_COMMAND( + SOURCE ${SOURCE_DIR}/${BISON_INPUT} + COMMAND ${BISON_EXECUTABLE} + ARGS -y ${SOURCE_DIR}/${BISON_INPUT} -o ${BINARY_DIR}/${BISON_OUTPUT} + TARGET PARSER_LIB + OUTPUTS ${BINARY_DIR}/${BISON_OUTPUT} +) + ADD_CUSTOM_COMMAND( - SOURCE ${Foo_SOURCE_DIR}/src/verilog_scanner.l + SOURCE ${SOURCE_DIR}/${FLEX_INPUT} COMMAND ${FLEX_EXECUTABLE} - ARGS -o${Foo_BINARY_DIR}/src/verilog_scanner.c - ${Foo_SOURCE_DIR}/src/verilog_scanner.l + ARGS -o ${BINARY_DIR}/${FLEX_OUTPUT} ${SOURCE_DIR}/${FLEX_INPUT} TARGET PARSER_LIB - OUTPUTS ${Foo_BINARY_DIR}/src/verilog_scanner.c + DEPENDS ${BINARY_DIR}/${BISON_OUTPUT} + OUTPUTS ${BINARY_DIR}/${FLEX_OUTPUT} ) +SET_SOURCE_FILES_PROPERTIES(${BINARY_DIR}/${FLEX_OUTPUT} GENERATED) +SET_SOURCE_FILES_PROPERTIES(${BINARY_DIR}/${BISON_OUTPUT} GENERATED) + +INCLUDE_DIRECTORIES(${BINARY_DIR}) +INCLUDE_DIRECTORIES(${SOURCE_DIR}) + +set(PARSER_LIB_SRC ${BINARY_DIR}/${FLEX_OUTPUT} + ${BINARY_DIR}/${BISON_OUTPUT} + ${SOURCE_DIR}/verilog_ast.c + ${SOURCE_DIR}/verilog_ast_common.c + ${SOURCE_DIR}/verilog_parser_wrapper.c + ${SOURCE_DIR}/verilog_preprocessor.c +) + +add_library(${LIBRARY_NAME} ${PARSER_LIB_SRC}) + +add_executable(${EXECUTABLE_NAME} main.c) +target_link_libraries(${EXECUTABLE_NAME} ${LIBRARY_NAME}) From 0049fee354b406506c11763093f9e5e0a385a64d Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 14:07:32 +0100 Subject: [PATCH 06/21] Added custom target to run tests framework. On branch buildsystem/cmake Changes to be committed: modified: ../.travis.yml modified: ../CMakeLists.txt modified: ../bin/run-tests.sh --- .travis.yml | 4 +++- CMakeLists.txt | 9 +++++++++ bin/run-tests.sh | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 174cb67..ff14c6d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,9 +17,11 @@ install: - sudo pip install cpp-coveralls before_script: - - make setup + - ./bin/project.sh script: + - cd build + - make parser - make test after_success: diff --git a/CMakeLists.txt b/CMakeLists.txt index 1484cbb..75da4f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,3 +4,12 @@ project(verilog-parser) add_subdirectory(./src) add_subdirectory(./docs) + + +add_custom_target(test + COMMAND ./bin/run-tests.sh + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${EXECUTABLE_NAME} + COMMENT "Running Test Suite" + VERBATIM +) diff --git a/bin/run-tests.sh b/bin/run-tests.sh index 9116e84..8277d8f 100755 --- a/bin/run-tests.sh +++ b/bin/run-tests.sh @@ -14,7 +14,7 @@ echo "------------------------- Running Test Script -------------------------" rm -rf build/tests.log -EXE=build/bin/verilog-app +EXE=./build/src/parser TEST_FILES=`find tests/ -name *.v | sort` FAILED_TESTS=" " From 2c4b4a042f4b0bba2c4e47dd123711b1179778e1 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 14:18:43 +0100 Subject: [PATCH 07/21] Setup both debug and release builds On branch buildsystem/cmake Changes to be committed: modified: CMakeLists.txt modified: bin/project.sh modified: bin/run-tests.sh modified: src/CMakeLists.txt --- CMakeLists.txt | 1 - bin/project.sh | 17 +++++++++++++---- bin/run-tests.sh | 2 +- src/CMakeLists.txt | 6 ++++++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 75da4f0..48e1d6a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,6 @@ project(verilog-parser) add_subdirectory(./src) add_subdirectory(./docs) - add_custom_target(test COMMAND ./bin/run-tests.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/bin/project.sh b/bin/project.sh index 47bf7d9..a9aba19 100755 --- a/bin/project.sh +++ b/bin/project.sh @@ -8,12 +8,21 @@ source ../bin/setup-tests.sh cd ../ # Create build directory structure. -mkdir -p build +mkdir -p build/release +mkdir -p build/debug mkdir -p build/docs -cd ./build -cmake .. -cd .. +echo "Setup debug build environment..." + +cd ./build/debug +cmake -DCMAKE_BUILD_TYPE=Debug ../../ +cd - + +echo "Setup release build environment..." + +cd ./build/release +cmake -DCMAKE_BUILD_TYPE=Release ../../ +cd - echo " " echo "Project workspace setup complete." diff --git a/bin/run-tests.sh b/bin/run-tests.sh index 8277d8f..ee762de 100755 --- a/bin/run-tests.sh +++ b/bin/run-tests.sh @@ -14,7 +14,7 @@ echo "------------------------- Running Test Script -------------------------" rm -rf build/tests.log -EXE=./build/src/parser +EXE=./build/debug/src/parser TEST_FILES=`find tests/ -name *.v | sort` FAILED_TESTS=" " diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dd729de..eeda346 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,6 +17,12 @@ set(FLEX_OUTPUT verilog_scanner.c) set(BISON_INPUT verilog_parser.y) set(BISON_OUTPUT verilog_parser.tab.c) +SET(CMAKE_C_FLAGS_DEBUG "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage") + +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") + ADD_CUSTOM_COMMAND( SOURCE ${SOURCE_DIR}/${BISON_INPUT} COMMAND ${BISON_EXECUTABLE} From 36f4900cd2eb5ae6fa1fc511dc74ac0ddf64dc2e Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 14:21:33 +0100 Subject: [PATCH 08/21] Echo build type. On branch buildsystem/cmake Changes to be committed: modified: .travis.yml modified: src/CMakeLists.txt --- .travis.yml | 2 +- src/CMakeLists.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ff14c6d..da36929 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ before_script: - ./bin/project.sh script: - - cd build + - cd ./build/debug/ - make parser - make test diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eeda346..11f541e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 2.8) project(verilog-parser-src) +message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}") + set(LIBRARY_NAME verilogparser) set(EXECUTABLE_NAME parser) From 700f7940d22d870c423595b1f3df3e089e2ddab2 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 15:22:42 +0100 Subject: [PATCH 09/21] Got coverage builds integrated into CMake On branch buildsystem/cmake Changes to be committed: modified: ../../.travis.yml modified: ../../src/CMakeLists.txt --- .travis.yml | 2 +- src/CMakeLists.txt | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index da36929..9808d6e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ script: after_success: - make coverage-report - - coveralls -b build/ -e build/bin -e build/lib -i build/coverage -i build/gen -i src/ --gcov-options "-f -b -c" + - echo "coveralls -b build/ -e build/bin -e build/lib -i build/coverage -i build/gen -i src/ --gcov-options \"-f -b -c\"" after_failure: - echo "Failure" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 11f541e..1d715b6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,6 +25,8 @@ SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +# ------------------------------------------------------------------------ + ADD_CUSTOM_COMMAND( SOURCE ${SOURCE_DIR}/${BISON_INPUT} COMMAND ${BISON_EXECUTABLE} @@ -45,6 +47,8 @@ ADD_CUSTOM_COMMAND( SET_SOURCE_FILES_PROPERTIES(${BINARY_DIR}/${FLEX_OUTPUT} GENERATED) SET_SOURCE_FILES_PROPERTIES(${BINARY_DIR}/${BISON_OUTPUT} GENERATED) +# ------------------------------------------------------------------------ + INCLUDE_DIRECTORIES(${BINARY_DIR}) INCLUDE_DIRECTORIES(${SOURCE_DIR}) @@ -58,5 +62,37 @@ set(PARSER_LIB_SRC ${BINARY_DIR}/${FLEX_OUTPUT} add_library(${LIBRARY_NAME} ${PARSER_LIB_SRC}) +set(CMAKE_C_OUTPUT_EXTENSION_REPLACE 1) + add_executable(${EXECUTABLE_NAME} main.c) target_link_libraries(${EXECUTABLE_NAME} ${LIBRARY_NAME}) + +# ------------------------------------------------------------------------ + +file(GLOB COVERAGE_TEST_FILE_LIST "../tests/*.v") + +file(GLOB COVERAGE_SRC_FILES "./*.c") + +set(COVERAGE_GEN_FILES + ${BINARY_DIR}/${FLEX_OUTPUT} ${BINARY_DIR}/${BISON_OUTPUT} +) + +add_custom_target(coverage-tests + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/parser ${COVERAGE_TEST_FILE_LIST} + WORKING_DIRECTORY ../ + DEPENDS ${EXECUTABLE_NAME} + COMMENT "Running Coverage Tests" + VERBATIM +) + +# -s ../../src/*.c ./src/*.c + +add_custom_target(coverage-report + COMMAND gcov -f -b -c -o ../../build/debug/src/CMakeFiles/verilogparser.dir -s ${COVERAGE_SRC_FILES} ${COVERAGE_GEN_FILES} + COMMAND lcov --directory . -c -o coverage.info -t "Verilog Parser" + COMMAND genhtml -o ./coverage -t "Verilog Parser Test Coverage" --num-spaces 4 coverage.info + DEPENDS coverage-tests + COMMENT "Generating Coverage Report With GCOV" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../ + VERBATIM +) From c879544fe9c06a94e30bdf8c9dc3d937efe3c616 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 15:26:35 +0100 Subject: [PATCH 10/21] Restore coverage reporting to travis build On branch buildsystem/cmake Changes to be committed: modified: ../../.travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9808d6e..e5729a8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ script: after_success: - make coverage-report - - echo "coveralls -b build/ -e build/bin -e build/lib -i build/coverage -i build/gen -i src/ --gcov-options \"-f -b -c\"" + - coveralls --gcov-options "-f -b -c" after_failure: - echo "Failure" From 575de96af42174eb20f1af3dae323bbdfe7c0d5c Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 16:10:09 +0100 Subject: [PATCH 11/21] Switch to codecov.io from coveralls --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e5729a8..ec720e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ script: after_success: - make coverage-report - - coveralls --gcov-options "-f -b -c" + - bash <(curl -s https://codecov.io/bash) after_failure: - echo "Failure" From 10cdbb895215ec6b6a40f02d108e7e6240633960 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 16:20:11 +0100 Subject: [PATCH 12/21] Fix codecov.io working directory. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index ec720e7..e5b80b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,7 @@ script: after_success: - make coverage-report + - cd ./src/CMakeFiles/verilogparser.dir/ - bash <(curl -s https://codecov.io/bash) after_failure: From 30994964f8387ebab70aa6b99ea4adfedf9bb019 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 16:20:53 +0100 Subject: [PATCH 13/21] Write coverage report output to file --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e5b80b0..34ee815 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ script: - make test after_success: - - make coverage-report + - make coverage-report &> coverage-report-log.txt - cd ./src/CMakeFiles/verilogparser.dir/ - bash <(curl -s https://codecov.io/bash) From 36eff344b2b64a90fd004e954b4c9aafeedf1ee7 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 16:33:35 +0100 Subject: [PATCH 14/21] Hopefully the last fix to codecov.io --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 34ee815..6a72553 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,6 @@ script: after_success: - make coverage-report &> coverage-report-log.txt - - cd ./src/CMakeFiles/verilogparser.dir/ - bash <(curl -s https://codecov.io/bash) after_failure: From ecd3dc2482dae943a58b1218b64c28043fd600a0 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 16:41:19 +0100 Subject: [PATCH 15/21] Hopefully the last fix to codecov.io - again... --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6a72553..f03026e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,8 +25,9 @@ script: - make test after_success: + - cd ./build/debug/ - make coverage-report &> coverage-report-log.txt - - bash <(curl -s https://codecov.io/bash) + - bash <(curl -s https://codecov.io/bash) -X gcov after_failure: - echo "Failure" From 7f67d4d5b4e39daaca6d86b77f17390ce75c49c0 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 16:57:54 +0100 Subject: [PATCH 16/21] Hopefully the last fix to codecov.io - yet again... --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f03026e..48c2d70 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,9 +25,9 @@ script: - make test after_success: - - cd ./build/debug/ - make coverage-report &> coverage-report-log.txt - - bash <(curl -s https://codecov.io/bash) -X gcov + - head coverage-report-log.txt + - bash <(curl -s https://codecov.io/bash) -X gcov -v -s ./build -R . after_failure: - echo "Failure" From 7784568116a86f68c40093dd337406a30166c0f1 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 17:10:24 +0100 Subject: [PATCH 17/21] Updated docs On branch buildsystem/cmake Changes to be committed: modified: .travis.yml modified: README.md modified: bin/setup-tests.sh modified: docs/project-organisation.dox --- .travis.yml | 5 - README.md | 3 +- bin/setup-tests.sh | 210 +++++++++++++++++----------------- docs/project-organisation.dox | 58 ++-------- 4 files changed, 116 insertions(+), 160 deletions(-) diff --git a/.travis.yml b/.travis.yml index 48c2d70..d688cf4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,11 +24,6 @@ script: - make parser - make test -after_success: - - make coverage-report &> coverage-report-log.txt - - head coverage-report-log.txt - - bash <(curl -s https://codecov.io/bash) -X gcov -v -s ./build -R . - after_failure: - echo "Failure" diff --git a/README.md b/README.md index 229e9de..2ecc590 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ Standard. This will get you going workspace wise. ```sh - $> make setup + $> ./bin/project + $> cd ./build/debug $> make test ``` diff --git a/bin/setup-tests.sh b/bin/setup-tests.sh index 93f850b..a59e40e 100755 --- a/bin/setup-tests.sh +++ b/bin/setup-tests.sh @@ -26,109 +26,107 @@ function downloadModelTest { echo "Unzipping SPARC test set..." unzip -o ../bin/sparct1.zip -#exit 0 -# -#echo "Downloading Tests..." -# -#downloadModelTest arbiter_tb.v -#downloadModelTest clk_div_45.v -#downloadModelTest concatenation.v -#downloadModelTest d_latch_gates.v -#downloadModelTest d_latch_switch.v -#downloadModelTest decoder_2to4_gates.v -#downloadModelTest decoder_using_assign.v -#downloadModelTest decoder_using_case.v -#downloadModelTest delay_example.v -#downloadModelTest dff_udp.v -#downloadModelTest dlatch_reset.v -#downloadModelTest encoder_4to2_gates.v -#downloadModelTest encoder_using_case.v -#downloadModelTest full_adder_gates.v -#downloadModelTest jkff_udp.v -#downloadModelTest latch_udp.v -#downloadModelTest lfsr.v -#downloadModelTest lfsr_updown.v -#downloadModelTest lfsr_updown_tb.v -#downloadModelTest misc1.v -#downloadModelTest mux21_switch.v -#downloadModelTest mux_21_udp.v -#downloadModelTest mux_using_assign.v -#downloadModelTest mux_using_case.v -#downloadModelTest mux_using_if.v -#downloadModelTest n_in_primitive.v -#downloadModelTest nand_switch.v -#downloadModelTest not_switch.v -#downloadModelTest parity_using_assign.v -#downloadModelTest port_declaration.v -#downloadModelTest pri_encoder_using_assign.v -#downloadModelTest pri_encoder_using_if.v -#downloadModelTest primitives.v -#downloadModelTest ram_dp_ar_aw.v -#downloadModelTest ram_dp_sr_sw.v -#downloadModelTest ram_sp_ar_aw.v -#downloadModelTest rom.v -#downloadModelTest serial_crc.v -#downloadModelTest srff_udp.v -#downloadModelTest syn_fifo.v -#downloadModelTest t_gate_switch.v -#downloadModelTest uart.v -#downloadModelTest xor2_input.v -#downloadModelTest xor_switch.v -#downloadTutorialTest addbit.v -#downloadTutorialTest adder_hier.v -#downloadTutorialTest and_from_nand.v -#downloadTutorialTest ansiport_example.v -#downloadTutorialTest arbiter.v -#downloadTutorialTest avoid_latch_else.v -#downloadTutorialTest bitwise_operators.v -#downloadTutorialTest buf_gate.v -#downloadTutorialTest buf_gate1.v -#downloadTutorialTest bus_wr_rd_task.v -#downloadTutorialTest casex_example.v -#downloadTutorialTest comma_example.v -#downloadTutorialTest concatenation_operator.v -#downloadTutorialTest conditional_operator.v -#downloadTutorialTest counterMonitor.v -#downloadTutorialTest counterTestGen.v -#downloadTutorialTest decoder.v -#downloadTutorialTest decoder_always.v -#downloadTutorialTest defparam_example.v -#downloadTutorialTest delay.v -#downloadTutorialTest delay_example.v -#downloadTutorialTest dff_async_reset_async_preset.v -#downloadTutorialTest dff_from_nand.v -#downloadTutorialTest dff_sync_reset_sync_preset.v -#downloadTutorialTest fifo_tb.v -#downloadTutorialTest first_counter.v -#downloadTutorialTest first_counter_tb.v -#downloadTutorialTest flip_flop.v -#downloadTutorialTest fsm_full_tb.v -#downloadTutorialTest gates.v -#downloadTutorialTest hello_pli.v -#downloadTutorialTest hello_world.v -#downloadTutorialTest implicit.v -#downloadTutorialTest initial_fork_join.v -#downloadTutorialTest logical_operators.v -#downloadTutorialTest multi_array.v -#downloadTutorialTest mux.v -#downloadTutorialTest mux_from_gates.v -#downloadTutorialTest mux_from_gates.v -#downloadTutorialTest n_in_primitive -#downloadTutorialTest n_out_primitive.v -#downloadTutorialTest named_block_disable.v -#downloadTutorialTest parallel.v -#downloadTutorialTest param_more_then_one.v -#downloadTutorialTest param_more_then_one1.v -#downloadTutorialTest param_overide_instance_example.v -#downloadTutorialTest quest_for_in.v -#downloadTutorialTest quest_for_out.v -#downloadTutorialTest switch_primitives.v -#downloadTutorialTest syn_fifo_psl.v -#downloadTutorialTest task_calling.v -#downloadTutorialTest task_global.v -#downloadTutorialTest test_tri.v -#downloadTutorialTest test_trireg.v -#downloadTutorialTest test_wor.v -#downloadTutorialTest transmission_gates.v -#downloadTutorialTest udp_body_tb.v -#downloadTutorialTest which_clock.v +echo "Downloading Tests..." + +downloadModelTest arbiter_tb.v +downloadModelTest clk_div_45.v +downloadModelTest concatenation.v +downloadModelTest d_latch_gates.v +downloadModelTest d_latch_switch.v +downloadModelTest decoder_2to4_gates.v +downloadModelTest decoder_using_assign.v +downloadModelTest decoder_using_case.v +downloadModelTest delay_example.v +downloadModelTest dff_udp.v +downloadModelTest dlatch_reset.v +downloadModelTest encoder_4to2_gates.v +downloadModelTest encoder_using_case.v +downloadModelTest full_adder_gates.v +downloadModelTest jkff_udp.v +downloadModelTest latch_udp.v +downloadModelTest lfsr.v +downloadModelTest lfsr_updown.v +downloadModelTest lfsr_updown_tb.v +downloadModelTest misc1.v +downloadModelTest mux21_switch.v +downloadModelTest mux_21_udp.v +downloadModelTest mux_using_assign.v +downloadModelTest mux_using_case.v +downloadModelTest mux_using_if.v +downloadModelTest n_in_primitive.v +downloadModelTest nand_switch.v +downloadModelTest not_switch.v +downloadModelTest parity_using_assign.v +downloadModelTest port_declaration.v +downloadModelTest pri_encoder_using_assign.v +downloadModelTest pri_encoder_using_if.v +downloadModelTest primitives.v +downloadModelTest ram_dp_ar_aw.v +downloadModelTest ram_dp_sr_sw.v +downloadModelTest ram_sp_ar_aw.v +downloadModelTest rom.v +downloadModelTest serial_crc.v +downloadModelTest srff_udp.v +downloadModelTest syn_fifo.v +downloadModelTest t_gate_switch.v +downloadModelTest uart.v +downloadModelTest xor2_input.v +downloadModelTest xor_switch.v +downloadTutorialTest addbit.v +downloadTutorialTest adder_hier.v +downloadTutorialTest and_from_nand.v +downloadTutorialTest ansiport_example.v +downloadTutorialTest arbiter.v +downloadTutorialTest avoid_latch_else.v +downloadTutorialTest bitwise_operators.v +downloadTutorialTest buf_gate.v +downloadTutorialTest buf_gate1.v +downloadTutorialTest bus_wr_rd_task.v +downloadTutorialTest casex_example.v +downloadTutorialTest comma_example.v +downloadTutorialTest concatenation_operator.v +downloadTutorialTest conditional_operator.v +downloadTutorialTest counterMonitor.v +downloadTutorialTest counterTestGen.v +downloadTutorialTest decoder.v +downloadTutorialTest decoder_always.v +downloadTutorialTest defparam_example.v +downloadTutorialTest delay.v +downloadTutorialTest delay_example.v +downloadTutorialTest dff_async_reset_async_preset.v +downloadTutorialTest dff_from_nand.v +downloadTutorialTest dff_sync_reset_sync_preset.v +downloadTutorialTest fifo_tb.v +downloadTutorialTest first_counter.v +downloadTutorialTest first_counter_tb.v +downloadTutorialTest flip_flop.v +downloadTutorialTest fsm_full_tb.v +downloadTutorialTest gates.v +downloadTutorialTest hello_pli.v +downloadTutorialTest hello_world.v +downloadTutorialTest implicit.v +downloadTutorialTest initial_fork_join.v +downloadTutorialTest logical_operators.v +downloadTutorialTest multi_array.v +downloadTutorialTest mux.v +downloadTutorialTest mux_from_gates.v +downloadTutorialTest mux_from_gates.v +downloadTutorialTest n_in_primitive +downloadTutorialTest n_out_primitive.v +downloadTutorialTest named_block_disable.v +downloadTutorialTest parallel.v +downloadTutorialTest param_more_then_one.v +downloadTutorialTest param_more_then_one1.v +downloadTutorialTest param_overide_instance_example.v +downloadTutorialTest quest_for_in.v +downloadTutorialTest quest_for_out.v +downloadTutorialTest switch_primitives.v +downloadTutorialTest syn_fifo_psl.v +downloadTutorialTest task_calling.v +downloadTutorialTest task_global.v +downloadTutorialTest test_tri.v +downloadTutorialTest test_trireg.v +downloadTutorialTest test_wor.v +downloadTutorialTest transmission_gates.v +downloadTutorialTest udp_body_tb.v +downloadTutorialTest which_clock.v diff --git a/docs/project-organisation.dox b/docs/project-organisation.dox index bb2dff0..446a968 100644 --- a/docs/project-organisation.dox +++ b/docs/project-organisation.dox @@ -24,55 +24,17 @@ and source code. @section build-system Build System -The build system is purely GNU Make. There is a top level Makefile with -the most common commands needed for the project included. These are: +The build system uses CMake, and is split into debug and release builds. +These are setup by the `bin/project.sh` script, and are found in the +`build/debug` or `build/release` directories. -- `all` - This builds the parser library, tester app and documentation. -- `app` - Builds the library and test app only. -- `docs` - Builds the documentation for the project. -- `setup` - Initialises the project workspace. +From either of those directories, we can run the following commands: -The `app` and `docs` commands recurse into the `build/` and `docs/` -subdirectories respectively. - -@subsection build-system-docs Documentation - -All documentation is built using Doxygen. The command to do so is -wrapped in a Makefile with the single command `make docs` in -`docs/Makefile`. - -@subsection build-system-source Compilation - -Compilation of the source code is handled by the makefile in the `build/` -directory. This makefile should be self explanatory, but is essentially -responsible for generating the flex and bison parsers, compiling object -code, linking into a static library, and creating the test app which -uses this library. - -The `build/` folder contains five sub-folders (assuming that `make all` -has been run from the top of the project). These are: - -- `bin` - Contains exectuable binaries like the test app. -- `lib` - Static and dynamic libraries, once compiled. -- `obj` - All intermediate object files. -- `gen` - Generated C source code, like the Bison and Flex code. -- `docs` - Documentation Generator output. -- `coverage` - See @ref coverage-info - -@subsection coverage-info Coverage - -The project uses `gcov` to generate coverage information and `lcov` to -create html reports. The following `make` commands are useful in this case: - -- `make app-with-coverage` - This is infact an alias for the - `make with-coverage` in `build/Makefile`. It simply builds the parser - library and test app with the appropriate coverage flags set. -- `make coverage-report` - This runs the script `bin/test-coverage.sh` which - runs all of the available test programs through the test app. The coverage - results are then compiled into the `build/coverage` folder, and the - html reports are generated with lcov. -- `make view-coverage-report` - Opens the generated html coverage reports - in your default html file viewer. +- `make all` +- `make parser` - Builds the library and a small tester app +- `make test` - Runs the test suite against the most recent build. +- `make coverage-report` - Runs the coverage suite against the most recent +build, and puts the results in `./build/coverage/` @section ci-tool Continuous Integration @@ -80,6 +42,6 @@ This project uses the Travis-CI tool for continuous integration. This is a service that plugs into github, meaning that every commit, fork and pull request automatically triggers a build. This build is configured using the `.travis.yml` file in the root of the project. As a minium, all builds -must complete successfully, and tests should also be run. +must complete successfully, and all of the test should be run without errors. */ From 9b0e83d6cf3267f67029c463086683a7808a8f13 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 17:10:56 +0100 Subject: [PATCH 18/21] Make the coverage report --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index d688cf4..048c1eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,7 @@ script: - cd ./build/debug/ - make parser - make test + - make coverage-report after_failure: - echo "Failure" From 389f54155d8ff1711d651a421b19b19411271c45 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 17:15:17 +0100 Subject: [PATCH 19/21] Re-instate coveralls --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index 048c1eb..2183a9c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,6 +25,11 @@ script: - make test - make coverage-report +after_success: + - pwd + - coveralls + + after_failure: - echo "Failure" From 628d57b728e08279149e0ea9b5ef33c994fc104a Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 17:17:37 +0100 Subject: [PATCH 20/21] Don't depend on coverage uplaod for success --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2183a9c..9020f2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,9 +23,10 @@ script: - cd ./build/debug/ - make parser - make test - - make coverage-report after_success: + - pwd + - make coverage-report - pwd - coveralls From 5569e5163a04445f29cacdae5532aac978b5f765 Mon Sep 17 00:00:00 2001 From: Ben Marshall Date: Tue, 12 Jul 2016 17:25:30 +0100 Subject: [PATCH 21/21] add inclueds for coverage reporting --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9020f2e..271e5fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ after_success: - pwd - make coverage-report - pwd - - coveralls + - coveralls -i ../../src/ -i ./src -b .src/CMakeFiles/verilogparser.dir/ after_failure: