Initial CMakeLists.txt Signed-off-by: Alain Dargelas <alainmarcel@yahoo.com>
diff --git a/SVIncCompil/CMakeLists.txt b/SVIncCompil/CMakeLists.txt new file mode 100644 index 0000000..349b2eb --- /dev/null +++ b/SVIncCompil/CMakeLists.txt
@@ -0,0 +1,138 @@ +# -*- mode:cmake -*- +cmake_minimum_required (VERSION 2.8) +# 2.8 needed because of ExternalProject + +# Detect build type, fallback to release and throw a warning if use didn't specify any +if(NOT CMAKE_BUILD_TYPE) + message(WARNING "Build type not set, falling back to Release mode. + To specify build type use: + -DCMAKE_BUILD_TYPE=<mode> where <mode> is Debug or Release.") + set(CMAKE_BUILD_TYPE "Release" CACHE STRING + "Choose the type of build, options are: Debug Release." + FORCE) +endif(NOT CMAKE_BUILD_TYPE) + +if(NOT WITH_TEST) + message(STATUS "Building without test. To enable test build use: -DWITH_TEST=True") + set(WITH_TEST False CACHE STRING + "Chose to build with or without test executable" + FORCE) +endif(NOT WITH_TEST) + +option(WITH_LIBCXX "Building with clang++ and libc++(in Linux). To enable with: -DWITH_LIBCXX=On" On) + +project(SURELOG) + +#file(STRINGS "VERSION" SURELOG_VERSION) + +if (WITH_TEST) + +endif(WITH_TEST) + +set(CMAKE_CXX_STANDARD 11) + +cmake_minimum_required(VERSION 3.0) +find_package(PythonLibs 3.3 REQUIRED) +INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES("../antlr4/antlr4-4.7.2/runtime/Cpp/runtime/src/") +INCLUDE_DIRECTORIES("../flatbuffers/include/") +message(STATUS "PYTHON_LIBRARIES = ${PYTHON_LIBRARIES}") +message(STATUS "PYTHON_EXECUTABLE = ${PYTHON_EXECUTABLE}") +message(STATUS "PYTHON_INCLUDE_DIRS = ${PYTHON_INCLUDE_DIRS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_CXX_WARNING_FLAGS}") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g ${MY_CXX_WARNING_FLAGS}") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG ${MY_CXX_WARNING_FLGAS}") + +# Compiler-specific C++11 activation. +if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel") + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) + # Just g++-5.0 and greater contain <codecvt> header. (test in ubuntu) + if (NOT (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0)) + message(FATAL_ERROR "${PROJECT_NAME} requires g++ 5.0 or greater.") + endif () +elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") +elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_SYSTEM_NAME MATCHES "Linux") + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE CLANG_VERSION) + if (NOT (CLANG_VERSION VERSION_GREATER 4.2.1 OR CLANG_VERSION VERSION_EQUAL 4.2.1)) + message(FATAL_ERROR "${PROJECT_NAME} requires clang 4.2.1 or greater.") + endif () + # You can use libc++ to compile this project when g++ is NOT greater than or equal to 5.0. + if (WITH_LIBCXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") + endif() +elseif ( MSVC_VERSION GREATER 1800 OR MSVC_VERSION EQUAL 1800 ) + # Visual Studio 2012+ supports c++11 features +else () + message(FATAL_ERROR "Your C++ compiler does not support C++11.") +endif () + +#if (WITH_DEMO) +# add_subdirectory(demo) +#endif(WITH_DEMO) + + +#set(dir ${CMAKE_CURRENT_SOURCE_DIR}/../Compile/) +#set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) +#set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) +#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dir}) +#set(CMAKE_BUILD_FILES_DIRECTORY ${dir}) +#set(CMAKE_BUILD_DIRECTORY ${dir}) +#set(CMAKE_BINARY_DIR ${dir}) + +set(CMAKE_BUILD_FILES_DIRECTORY ${dir}) +set(CMAKE_BUILD_DIRECTORY ${dir}) + +include_directories( + ${PROJECT_SOURCE_DIR}/API + ${PROJECT_SOURCE_DIR}/Design + ${PROJECT_SOURCE_DIR}/Library + ${PROJECT_SOURCE_DIR}/parser + ${PROJECT_SOURCE_DIR}/SourceCompile + ${PROJECT_SOURCE_DIR}/DesignCompile + ${PROJECT_SOURCE_DIR}/Testbench + ${PROJECT_SOURCE_DIR}/CommandLine + ${PROJECT_SOURCE_DIR}/Common + ${PROJECT_SOURCE_DIR}/ErrorReporting + ${PROJECT_SOURCE_DIR}/Utils + ${PROJECT_SOURCE_DIR}/Cache + ${PROJECT_SOURCE_DIR}/Config + ${PROJECT_SOURCE_DIR}/Expression + ${PROJECT_SOURCE_DIR}/Package +) + + +file(GLOB surelog_SRC + ${PROJECT_SOURCE_DIR}/*.cpp + ${PROJECT_SOURCE_DIR}/API/*.cpp + ${PROJECT_SOURCE_DIR}/Design/*.cpp + ${PROJECT_SOURCE_DIR}/Library/*.cpp + ${PROJECT_SOURCE_DIR}/parser/*.cpp + ${PROJECT_SOURCE_DIR}/SourceCompile/*.cpp + ${PROJECT_SOURCE_DIR}/DesignCompile/*.cpp + ${PROJECT_SOURCE_DIR}/Testbench/*.cpp + ${PROJECT_SOURCE_DIR}/CommandLine/*.cpp + ${PROJECT_SOURCE_DIR}/Common/*.cpp + ${PROJECT_SOURCE_DIR}/ErrorReporting/*.cpp + ${PROJECT_SOURCE_DIR}/Utils/*.cpp + ${PROJECT_SOURCE_DIR}/Cache/*.cpp + ${PROJECT_SOURCE_DIR}/Config/*.cpp + ${PROJECT_SOURCE_DIR}/Expression/*.cpp + ${PROJECT_SOURCE_DIR}/Package/*.cpp + ) + +add_executable(surelog ${surelog_SRC}) + +target_link_libraries( + surelog ${PYTHON_LIBRARIES} + ) + +target_link_libraries( + surelog ${ANTLR_LIB} +) + +target_link_libraries( + surelog -L../../antlr4/antlr4-4.7.2/runtime/Cpp/dist/ libantlr4-runtime.a dl util m rt pthread +)
diff --git a/SVIncCompil/Testcases/SimpleClass1/SimpleClass1_diff.log b/SVIncCompil/Testcases/SimpleClass1/SimpleClass1_diff.log index 4b32dcd..80405f7 100644 --- a/SVIncCompil/Testcases/SimpleClass1/SimpleClass1_diff.log +++ b/SVIncCompil/Testcases/SimpleClass1/SimpleClass1_diff.log
@@ -788,5 +788,5 @@ * End SURELOG SVerilog Compiler/Linter * ******************************************** -1.68user 0.08system 0:01.77elapsed 99%CPU (0avgtext+0avgdata 118140maxresident)k -8inputs+7720outputs (0major+31799minor)pagefaults 0swaps +2.09user 0.12system 0:02.48elapsed 88%CPU (0avgtext+0avgdata 117876maxresident)k +600inputs+7720outputs (0major+31790minor)pagefaults 0swaps
diff --git a/SVIncCompil/Testcases/UnitTest/UnitTest.log b/SVIncCompil/Testcases/UnitTest/UnitTest.log index eda6f94..6801371 100644 --- a/SVIncCompil/Testcases/UnitTest/UnitTest.log +++ b/SVIncCompil/Testcases/UnitTest/UnitTest.log
@@ -42,5 +42,5 @@ * End SURELOG SVerilog Compiler/Linter * ******************************************** -0.15user 0.01system 0:00.19elapsed 90%CPU (0avgtext+0avgdata 45760maxresident)k -8inputs+8outputs (0major+10087minor)pagefaults 0swaps +0.14user 0.04system 0:00.35elapsed 53%CPU (0avgtext+0avgdata 45708maxresident)k +528inputs+8outputs (0major+10088minor)pagefaults 0swaps
diff --git a/SVIncCompil/Testcases/regression.log b/SVIncCompil/Testcases/regression.log index 7dc0eb9..56d6c87 100644 --- a/SVIncCompil/Testcases/regression.log +++ b/SVIncCompil/Testcases/regression.log
@@ -1,9 +1,8 @@ Skipping large tests -Run with -mt 0 ************************ START SURELOG REGRESSION -Starts on 11/13/2019 20:26:21 +Starts on 11/13/2019 22:27:19 COMMAND: /usr/bin/time /home/alain/Surelog/SVIncCompil/Testcases/../dist/surelog/surelog Creating release for regression... Skipping ovm_pkg... @@ -11,95 +10,29 @@ Created dist/surelog_release_tcmalloc.tar.gz PASS: surelog_release_tcmalloc THERE ARE 103 tests -RUNNING 93 tests +RUNNING 1 tests -+----------------------------+----------+----------+----------+----------+----------+----------+--------------+--------------+ -| TESTNAME | STATUS | FATALS | ERRORS | WARNINGS | NOTES | SYNTAX | ELAPSED TIME | MEM(Mb) | -+----------------------------+----------+----------+----------+----------+----------+----------+--------------+--------------+ -| Monitor | PASS | 0 | 0 | 11 | 7 | 0 | 12s (-1s) | 263 (+1) | -| UnitDefParam | PASS | 0 | 0 | 17 | 8 | 0 | 0s | 44 | -| YosysSmall | PASS | 0 | 1 | 6 | 9 | 0 | 2s (+1s) | 47 (+1) | -| UnitForLoop | PASS | 0 | 4 | 0 | 4 | 0 | 0s | 44 | -| SimpleUVM | PASS | 0 | 0 | 11 | 7 | 0 | 3s (+1s) | 115 | -| SimpleVMM | PASS | 0 | 0 | 16 | 5 | 0 | 23s (+1s) | 286 | -| YosysBigSimAes | PASS | 0 | 0 | 0 | 5 | 0 | 1s | 53 | -| UnitPackage | PASS | 0 | 0 | 6 | 9 | 0 | 1s | 57 | -| OldLibrary | PASS | 0 | 0 | 4 | 8 | 0 | 0s | 44 | -| SimpleCmdLineTest | PASS | 0 | 0 | 1 | 1 | 0 | 0s | 44 | -| YosysBigSimSoft | PASS | 0 | 0 | 2 | 6 | 0 | 2s | 89 | -| RiscV | PASS | 0 | 0 | 10 | 19 | 0 | 3s | 102 (+1) | -| TimeUnit | PASS | 0 | 8 | 10 | 7 | 0 | 0s | 49 | -| SimpleClass | PASS | 0 | 1 | 2 | 6 | 0 | 0s | 44 | -| UnitAmiqEth | PASS | 0 | 0 | 7 | 4 | 0 | 6s | 141 | -| PackageHierRef | PASS | 0 | 2 | 8 | 9 | 0 | 0s | 44 | -| AmiqEth | PASS | 0 | 10 | 32 | 5 | 0 | 16s | 400 (+1) | -| SimpleInterface | PASS | 0 | 3 | 13 | 20 | 0 | 2s | 114 | -| YosysOldI2c | PASS | 0 | 0 | 16 | 26 | 0 | 0s | 34 | -| UnitLibrary | PASS | 0 | 2 | 16 | 31 | 0 | 0s | 44 | -| Google | PASS | 0 | 169 | 83 | 114 | 39 | 12s (-2s) | 657 | -| YosysDsp | PASS | 0 | 5 | 20 | 20 | 0 | 4s | 107 | -| SimpleConstraint | PASS | 0 | 0 | 2 | 4 | 0 | 1s | 51 | -| Icarus | PASS | 0 | 10 | 264 | 160 | 4 | 16s (-1s) | 646 | -| UnitForeach | PASS | 0 | 7 | 0 | 4 | 0 | 0s | 45 | -| Escape | PASS | 0 | 5 | 10 | 8 | 0 | 0s | 47 | -| Scoreboard | PASS | 0 | 0 | 11 | 7 | 0 | 3s | 118 | -| BuildOVMPkg | PASS | 0 | 0 | 16 | 5 | 0 | 47s (+2s) | 812 | -| YosysOldSimpleSpi | PASS | 0 | 2 | 8 | 9 | 0 | 2s (+1s) | 62 | -| YosysOldSsPcm | PASS | 0 | 1 | 2 | 6 | 0 | 1s | 45 | -| AVLMM | PASS | 0 | 4 | 4 | 5 | 0 | 3s | 91 | -| UnitEnum | PASS | 0 | 1 | 2 | 5 | 0 | 0s | 44 | -| TestMacros | PASS | 0 | 3 | 0 | 11 | 2 | 0s | 47 | -| UnitQueue | PASS | 0 | 4 | 0 | 4 | 0 | 0s | 44 | -| ApbSlave | PASS | 0 | 0 | 1 | 7 | 0 | 3s (+1s) | 68 | -| SimpleParserTest | PASS | 0 | 0 | 0 | 0 | 0 | 3s (+1s) | 76 (+1) | -| YosysOldOr | PASS | 0 | 0 | 0 | 117 | 0 | 11s (+1s) | 471 (+1) | -| YosysCam | PASS | 0 | 0 | 0 | 7 | 0 | 2s (+1s) | 59 | -| ClassCons | PASS | 0 | 1 | 2 | 6 | 0 | 0s | 47 | -| TestBasic | PASS | 0 | 0 | 0 | 0 | 0 | 0s | 44 | -| AmiqSimpleTestSuite | PASS | 0 | 12 | 15 | 9 | 0 | 34s (+3s) | 519 | -| SimpleOVM | PASS | 0 | 0 | 16 | 4 | 0 | 0s | 79 (+1) | -| TestFileSplit | PASS | 0 | 3 | 7 | 8 | 0 | 0s | 44 | -| YosysVerx | PASS | 0 | 0 | 3 | 8 | 0 | 7s | 230 | -| YosysBigSimOpenMsp | PASS | 0 | 7 | 33 | 33 | 1 | 7s | 212 (+1) | -| MiniAmiq | PASS | 0 | 0 | 11 | 6 | 0 | 11s | 244 | -| SeqDriver | PASS | 0 | 0 | 11 | 7 | 0 | 4s (+1s) | 121 | -| UnitClass | PASS | 0 | 8 | 1 | 6 | 0 | 0s | 44 | -| ClassFuncProto | PASS | 0 | 5 | 1 | 6 | 0 | 0s | 44 | -| SimpleIncludeAndMacros | PASS | 0 | 32 | 10 | 26 | 6 | 1s | 48 (-1) | -| UnitSimpleIncludeAndMacros | PASS | 0 | 30 | 18 | 12 | 6 | 1s | 48 | -| YosysBigSimAmber23 | PASS | 0 | 3 | 17 | 22 | 1 | 6s | 187 | -| YosysOldAes | PASS | 0 | 6 | 10 | 10 | 0 | 3s (+1s) | 154 | -| YosysOldUsb | PASS | 0 | 3 | 6 | 7 | 0 | 2s (+1s) | 63 | -| YosysOldOpen | PASS | 0 | 0 | 20 | 31 | 0 | 6s | 162 | -| PragmaProtect | PASS | 0 | 1 | 1 | 6 | 0 | 0s | 46 | -| UVMNestedSeq | PASS | 0 | 3 | 12 | 7 | 0 | 5s | 169 | -| Custom_FIR_DMA | PASS | 0 | 7 | 54 | 102 | 0 | 8s | 409 | -| YosysSmallBoom | PASS | 0 | 0 | 291 | 296 | 0 | 41s (+7s) | 2626 (+1) | -| InterfaceModPort | PASS | 0 | 0 | 2 | 15 | 0 | 4s (-1s) | 49 | -| GoogleMT | PASS | 0 | 169 | 83 | 114 | 39 | 17s (+3s) | 657 | -| UnitElabBlock | PASS | 0 | 0 | 3 | 14 | 0 | 0s | 44 | -| DiffSimpleIncludeAndMacros | PASS | 0 | 62 | 30 | 38 | 0 | 2s (+1s) | 48 | -| Yosys | PASS | 0 | 10 | 457 | 0 | 10 | 13s (+1s) | 340 | -| Verilator | PASS | 0 | 631 | 416 | 4 | 48 | 140s (+8s) | 1833 | -| UnitTest | PASS | 0 | 0 | 0 | 4 | 0 | 0s | 44 | -| Ibex | PASS | 0 | 0 | 10 | 10 | 0 | 26s (+1s) | 476 (+1) | -| YosysBigSimLm32 | PASS | 0 | 12 | 20 | 24 | 0 | 9s (+1s) | 259 | -| YosysBigSimReed | PASS | 0 | 1 | 0 | 0 | 0 | 0s | 16 | -| YosysOldSpi | PASS | 0 | 109 | 6 | 7 | 3 | 2s | 112 | -| SVSwitch | PASS | 0 | 0 | 2 | 52 | 0 | 4s | 85 | -| Zachjs | PASS | 0 | 271 | 74 | 0 | 9 | 8s (+1s) | 192 | -| CoresSweRV | PASS | 0 | 0 | 110 | 21 | 0 | 35s (+3s) | 740 | -| YosysOldSystem | PASS | 0 | 0 | 14 | 11 | 0 | 3s | 230 | -| OVMSwitch | PASS | 0 | 1 | 17 | 124 | 0 | 13s (+1s) | 260 | -| Driver | PASS | 0 | 0 | 11 | 8 | 0 | 5s (+1s) | 130 (+1) | -| UtdSV | PASS | 0 | 9 | 2797 | 488 | 3 | 22s (+1s) | 1028 | -| YosysMarlann | PASS | 0 | 0 | 2 | 7 | 0 | 2s | 64 (+1) | -| UVMSwitch | PASS | 0 | 0 | 11 | 129 | 0 | 15s (+1s) | 285 | -| GenerateUnnamed | PASS | 0 | 0 | 2 | 24 | 0 | 0s | 45 | -| SplitFile | PASS | 0 | 13 | 17 | 27 | 0 | 0s | 49 | -| UnitElab | PASS | 0 | 1 | 17 | 2465 | 0 | 1s | 54 | -| UnitElabExternNested | PASS | 0 | 0 | 8 | 22 | 0 | 0s | 44 | -| BeginKeywords | PASS | 0 | 0 | 1 | 6 | 0 | 0s | 44 | -| SimpleTask | PASS | 0 | 0 | 2 | 20 | 0 | 1s | 51 | -| IbexGoogle | PASS | 0 | 7 | 11 | 7 | 1 | 36s (+2s) | 482 | -| BlackParrot | \ No newline at end of file ++--------------+----------+----------+----------+----------+----------+----------+--------------+--------------+ +| TESTNAME | STATUS | FATALS | ERRORS | WARNINGS | NOTES | SYNTAX | ELAPSED TIME | MEM(Mb) | ++--------------+----------+----------+----------+----------+----------+----------+--------------+--------------+ + +cd SimpleClass1 +/usr/bin/time /home/alain/Surelog/SVIncCompil/Testcases/../dist/surelog/surelog +incdir+.+../../../UVM/uvm-1.2/src/ ../../../UVM/uvm-1.2/src/uvm_pkg.sv -writepp -parse -d inst -mt max top.v + +| SimpleClass1 | PASS | 0 | 8 | 15 | 8 | 0 | 2s (+1s) | 115 | ++--------------+----------+----------+----------+----------+----------+----------+--------------+--------------+ + + RESULT : PASS + ++--------------+----------+----------+ +| | CURRENT | PREVIOUS | ++--------------+----------+----------+ +|TOTAL ELAPSED | 2s | 1s | +|TOTAL USER | 2s | 1s | +|MAX MEM TEST | 115Mb | 115Mb | +|MAX TIME TEST | 2s | 1s | ++--------------+----------+----------+ + +End on 11/13/2019 22:27:25 +END SURELOG REGRESSION +************************
diff --git a/SVIncCompil/buildantlr.sh b/SVIncCompil/buildantlr.sh index a67cfe0..3daeecb 100755 --- a/SVIncCompil/buildantlr.sh +++ b/SVIncCompil/buildantlr.sh
@@ -23,7 +23,6 @@ #cd ../antlr4 #wget https://github.com/antlr/antlr4/archive/4.7.2.zip #unzip 4.7.2.zip -#cp -R ../third_party/antlr4/runtime/* antlr4-4.7.2/runtime #cd antlr4-4.7.2 #export MAVEN_OPTS="-Xmx1G" #mvn clean