Merge branch 'develop' into main
This commit is contained in:
commit
4b65d31b89
96
.clang-format
Normal file
96
.clang-format
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
Language: Cpp
|
||||||
|
# BasedOnStyle: LLVM
|
||||||
|
# should be in line with IndentWidth
|
||||||
|
AccessModifierOffset: -4
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignConsecutiveAssignments: false
|
||||||
|
AlignConsecutiveDeclarations: false
|
||||||
|
AlignEscapedNewlinesLeft: false
|
||||||
|
AlignOperands: true
|
||||||
|
AlignTrailingComments: true
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: true
|
||||||
|
AllowShortBlocksOnASingleLine: false
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: All
|
||||||
|
AllowShortIfStatementsOnASingleLine: false
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
AlwaysBreakTemplateDeclarations: false
|
||||||
|
BinPackArguments: true
|
||||||
|
BinPackParameters: true
|
||||||
|
BraceWrapping:
|
||||||
|
AfterClass: false
|
||||||
|
AfterControlStatement: false
|
||||||
|
AfterEnum: false
|
||||||
|
AfterFunction: false
|
||||||
|
AfterNamespace: false
|
||||||
|
AfterObjCDeclaration: false
|
||||||
|
AfterStruct: false
|
||||||
|
AfterUnion: false
|
||||||
|
BeforeCatch: false
|
||||||
|
BeforeElse: false
|
||||||
|
IndentBraces: false
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeBraces: Attach
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
BreakConstructorInitializersBeforeComma: true
|
||||||
|
BreakAfterJavaFieldAnnotations: false
|
||||||
|
BreakStringLiterals: true
|
||||||
|
ColumnLimit: 140
|
||||||
|
CommentPragmas: '^( IWYU pragma:| @suppress)'
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
ConstructorInitializerIndentWidth: 0
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
DisableFormat: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
||||||
|
Priority: 2
|
||||||
|
- Regex: '^(<|"(gtest|isl|json)/)'
|
||||||
|
Priority: 3
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 1
|
||||||
|
IncludeIsMainRegex: '$'
|
||||||
|
IndentCaseLabels: false
|
||||||
|
IndentWidth: 4
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
JavaScriptQuotes: Leave
|
||||||
|
JavaScriptWrapImports: true
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
MacroBlockBegin: ''
|
||||||
|
MacroBlockEnd: ''
|
||||||
|
MaxEmptyLinesToKeep: 1
|
||||||
|
NamespaceIndentation: None
|
||||||
|
ObjCBlockIndentWidth: 2
|
||||||
|
ObjCSpaceAfterProperty: false
|
||||||
|
ObjCSpaceBeforeProtocolList: true
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 19
|
||||||
|
PenaltyBreakComment: 300
|
||||||
|
PenaltyBreakFirstLessLess: 120
|
||||||
|
PenaltyBreakString: 1000
|
||||||
|
PenaltyExcessCharacter: 1000000
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
|
PointerAlignment: Left
|
||||||
|
ReflowComments: true
|
||||||
|
SortIncludes: true
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeParens: Never
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInContainerLiterals: true
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: Cpp11
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Never
|
||||||
|
...
|
||||||
|
|
99
.cproject
99
.cproject
@ -14,9 +14,9 @@
|
|||||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151" name="Debug" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
|
<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151" name="Debug" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||||
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914" name="/" resourcePath="">
|
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914" name="/" resourcePath="">
|
||||||
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
|
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" nonInternalBuilderId="cmake4eclipse.mbs.builder" superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1141103737" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1141103737" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
||||||
<builder buildPath="/TGC-ISS/_build/Debug" id="cmake4eclipse.mbs.builder.1823257054" parallelBuildOn="false" superClass="cmake4eclipse.mbs.builder"/>
|
<builder buildPath="/TGC-ISS/build/Debug" id="cmake4eclipse.mbs.builder.1295402556" keepEnvironmentInBuildfile="false" name="CMake Builder" superClass="cmake4eclipse.mbs.builder"/>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.740869785" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
<tool id="cdt.managedbuild.tool.gnu.archiver.base.740869785" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
|
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
|
||||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.1599133325" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
|
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.1599133325" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||||
@ -48,14 +48,14 @@
|
|||||||
<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
|
<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
|
||||||
</defs>
|
</defs>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule dirtyTs="1681454842738" moduleId="de.marw.cmake4eclipse.mbs.settings">
|
<storageModule buildDir="build/${ConfigName}" dirtyTs="1698593487517" moduleId="de.marw.cmake4eclipse.mbs.settings">
|
||||||
<options/>
|
<options/>
|
||||||
<defs>
|
<defs>
|
||||||
<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
|
<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
|
||||||
<def name="USE_CWR_SYSTEM" type="BOOL" val="ON"/>
|
|
||||||
<def name="BUILD_SHARED_LIBS" type="BOOL" val="ON"/>
|
|
||||||
<def name="CODEGEN" type="BOOL" val="OFF"/>
|
|
||||||
<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
|
<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
|
||||||
|
<def name="WITH_TCC" type="BOOL" val="ON"/>
|
||||||
|
<def name="BUILD_COMMON_FW" type="BOOL" val="ON"/>
|
||||||
|
<def name="ENABLE_CLANG_TIDY" type="BOOL" val="ON"/>
|
||||||
</defs>
|
</defs>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
</cconfiguration>
|
</cconfiguration>
|
||||||
@ -112,8 +112,66 @@
|
|||||||
<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
|
<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
|
||||||
<def name="USE_CWR_SYSTEMC" type="BOOL" val="ON"/>
|
<def name="USE_CWR_SYSTEMC" type="BOOL" val="ON"/>
|
||||||
<def name="BUILD_SHARED_LIBS" type="BOOL" val="ON"/>
|
<def name="BUILD_SHARED_LIBS" type="BOOL" val="ON"/>
|
||||||
<def name="CODEGEN" type="BOOL" val="OFF"/>
|
|
||||||
<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
|
<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
|
||||||
|
<def name="FW_BUILD" type="BOOL" val="ON"/>
|
||||||
|
</defs>
|
||||||
|
</storageModule>
|
||||||
|
</cconfiguration>
|
||||||
|
<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382">
|
||||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382" moduleId="org.eclipse.cdt.core.settings" name="RelWithDebInfo">
|
||||||
|
<externalSettings/>
|
||||||
|
<extensions>
|
||||||
|
<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
</extensions>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
|
<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382" name="RelWithDebInfo" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||||
|
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382." name="/" resourcePath="">
|
||||||
|
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1009994445" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||||
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1023431687" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
||||||
|
<builder buildPath="/TGC-ISS/_build/Debug" id="cmake4eclipse.mbs.builder.87414385" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="unlimited" superClass="cmake4eclipse.mbs.builder"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.archiver.base.40272694" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.288344887" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
|
||||||
|
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.1881910565" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||||
|
<listOptionValue builtIn="false" value="CWR_SYSTEMC=1"/>
|
||||||
|
</option>
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1745748578" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1398015713" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1810687689" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.120562679" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1158166201" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.120238241" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||||
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||||
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||||
|
</inputType>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.assembler.base.1253632883" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.502601048" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||||
|
</tool>
|
||||||
|
</toolChain>
|
||||||
|
</folderInfo>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
|
<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
|
||||||
|
<options/>
|
||||||
|
<defs>
|
||||||
|
<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
|
||||||
|
</defs>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule buildDir="build/${ConfigName}" dirtyTs="1698593290265" moduleId="de.marw.cmake4eclipse.mbs.settings">
|
||||||
|
<options/>
|
||||||
|
<defs>
|
||||||
|
<def name="CMAKE_BUILD_TYPE" type="STRING" val="RelWithDebInfo"/>
|
||||||
|
<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
|
||||||
|
<def name="WITH_TCC" type="BOOL" val="ON"/>
|
||||||
|
<def name="FW_BUILD" type="BOOL" val="ON"/>
|
||||||
|
<def name="ENABLE_CLANG_TIDY" type="BOOL" val="ON"/>
|
||||||
</defs>
|
</defs>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
</cconfiguration>
|
</cconfiguration>
|
||||||
@ -126,6 +184,7 @@
|
|||||||
<configuration configurationName="Debug-PA">
|
<configuration configurationName="Debug-PA">
|
||||||
<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
|
<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<configuration configurationName="RelWithDebInfo"/>
|
||||||
<configuration configurationName="Default">
|
<configuration configurationName="Default">
|
||||||
<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
|
<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
|
||||||
</configuration>
|
</configuration>
|
||||||
@ -133,15 +192,37 @@
|
|||||||
<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
|
<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
|
||||||
</configuration>
|
</configuration>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||||
|
<storageModule cmakelistsFolder="" moduleId="de.marw.cmake4eclipse.mbs.settings">
|
||||||
|
<targets>
|
||||||
|
<target name=""/>
|
||||||
|
</targets>
|
||||||
|
</storageModule>
|
||||||
<storageModule moduleId="scannerConfiguration">
|
<storageModule moduleId="scannerConfiguration">
|
||||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.c.compiler.base.1699395860;cdt.managedbuild.tool.gnu.c.compiler.input.1583122935">
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.c.compiler.base.1699395860;cdt.managedbuild.tool.gnu.c.compiler.input.1583122935">
|
||||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
</scannerConfigBuildInfo>
|
</scannerConfigBuildInfo>
|
||||||
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382;cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.;cdt.managedbuild.tool.gnu.cpp.compiler.base.288344887;cdt.managedbuild.tool.gnu.cpp.compiler.input.1745748578">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203;cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862">
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203;cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862">
|
||||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
</scannerConfigBuildInfo>
|
</scannerConfigBuildInfo>
|
||||||
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382;cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.;cdt.managedbuild.tool.gnu.c.compiler.base.1398015713;cdt.managedbuild.tool.gnu.c.compiler.input.1810687689">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||||
|
<buildTargets>
|
||||||
|
<target name="format" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>make</buildCommand>
|
||||||
|
<buildArguments>$<cmake4eclipse_dyn></buildArguments>
|
||||||
|
<buildTarget>format</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
</buildTargets>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
|
||||||
</cproject>
|
</cproject>
|
8
.envrc
Normal file
8
.envrc
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
module load ./Modulefile
|
||||||
|
distro=`/bin/lsb_release -i -s`
|
||||||
|
if [ $distro == "CentOS" ]; then
|
||||||
|
. /opt/rh/devtoolset-8/enable
|
||||||
|
. /opt/rh/rh-python38/enable
|
||||||
|
fi
|
||||||
|
layout python3
|
||||||
|
[ -f .envrc.$USER ] && . .envrc.$USER
|
20
.gitignore
vendored
20
.gitignore
vendored
@ -1,8 +1,24 @@
|
|||||||
/build/
|
/build/
|
||||||
/Debug/
|
/Debug/
|
||||||
.settings
|
.settings
|
||||||
/.venv
|
/.venv*
|
||||||
/Debug-PA/
|
/Debug-PA/
|
||||||
/_build/
|
/_build/
|
||||||
/install/
|
/install/
|
||||||
/analysis_results
|
/analysis_results
|
||||||
|
.vscode
|
||||||
|
*.log
|
||||||
|
*tcc_jit*.c
|
||||||
|
*.disass
|
||||||
|
*.dis
|
||||||
|
*.objdump
|
||||||
|
*.asm
|
||||||
|
*.signature
|
||||||
|
*.elf
|
||||||
|
*.trc
|
||||||
|
/*.core_desc
|
||||||
|
/fasterDecoding/
|
||||||
|
*.ll
|
||||||
|
/dbt-rise-plugins
|
||||||
|
/.direnv
|
||||||
|
/TGC_C_XRB/
|
||||||
|
367
CMakeLists.txt
367
CMakeLists.txt
@ -1,147 +1,240 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_CURRENT_SOURCE_DIR}/scc/cmake)
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/scc/cmake)
|
||||||
|
|
||||||
project(TGFS-ISS VERSION 1.0.0 LANGUAGES CXX)
|
project(TGC-ISS VERSION 1.0.0 LANGUAGES CXX)
|
||||||
|
|
||||||
option(CODEGEN "enable generation of ISS code" ON)
|
|
||||||
set(CORE_NAME TGC_C CACHE STRING "The core to build the ISS for" )
|
|
||||||
set(WITH_LLVM FALSE CACHE BOOL "Build LLVM based backend")
|
set(WITH_LLVM FALSE CACHE BOOL "Build LLVM based backend")
|
||||||
|
if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS")
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
###########################################################################
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
# stand alone build settings
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
###########################################################################
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CORE_NAME TGC5C CACHE STRING "The core to build the ISS for" )
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
option(BUILD_COMMON_FW "Enable the automatic download and build of some firmware to run on the ISS" OFF)
|
||||||
set(CMAKE_INSTALL_RPATH "${ORIGIN}")
|
option(ENABLE_SANITIZER "Enable address sanitizer" OFF)
|
||||||
include(CheckCXXCompilerFlag)
|
option(ENABLE_CLANG_TIDY "Add clang-tidy and clang-format automatically to builds" OFF)
|
||||||
include(GNUInstallDirs)
|
option(WITH_TCC "Build TCC backend" OFF)
|
||||||
|
option(WITH_LLVM "Build LLVM backend" OFF)
|
||||||
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
|
option(WITH_ASMJIT "Build ASMJIT backend" OFF)
|
||||||
if(COMPILER_SUPPORTS_MARCH_NATIVE)
|
|
||||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
elseif(NOT(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo"))
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
endif()
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
endif()
|
set(CMAKE_INSTALL_RPATH "${ORIGIN}")
|
||||||
|
include(CheckCXXCompilerFlag)
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
|
||||||
set(warnings "-Wall -Wextra -Werror")
|
if(COMPILER_SUPPORTS_MARCH_NATIVE)
|
||||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
|
elseif(NOT(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo"))
|
||||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
||||||
set(warnings "/W4 /WX /EHsc")
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(ConanInline)
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
if(BUILD_SHARED_LIBS)
|
set(warnings "-Wall -Wextra -Werror")
|
||||||
set(SHARED_FLAG "True")
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
||||||
else()
|
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
|
||||||
set(SHARED_FLAG "False")
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
endif()
|
set(warnings "/W4 /WX /EHsc")
|
||||||
|
endif()
|
||||||
set(CONAN_BOOST_OPTIONS
|
if(ENABLE_SANITIZER)
|
||||||
boost:fPIC=True
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
|
||||||
boost:shared=${SHARED_FLAG}
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
|
||||||
boost:header_only=False
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
||||||
boost:without_contract=True
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
|
||||||
boost:without_graph=True
|
endif()
|
||||||
boost:without_graph_parallel=True
|
include(GNUInstallDirs)
|
||||||
boost:without_iostreams=True
|
include(ConanInline)
|
||||||
boost:without_json=True
|
if(BUILD_SHARED_LIBS)
|
||||||
boost:without_locale=True
|
set(SHARED_FLAG "True")
|
||||||
boost:without_log=True
|
|
||||||
boost:without_math=True
|
|
||||||
boost:without_mpi=True
|
|
||||||
boost:without_nowide=True
|
|
||||||
boost:without_python=True
|
|
||||||
boost:without_random=True
|
|
||||||
boost:without_regex=True
|
|
||||||
boost:without_stacktrace=True
|
|
||||||
boost:without_test=True
|
|
||||||
boost:without_timer=True
|
|
||||||
boost:without_type_erasure=True
|
|
||||||
boost:without_wave=True
|
|
||||||
)
|
|
||||||
|
|
||||||
set(B2_VERSION 4.9.3)
|
|
||||||
set(CONAN_PACKAGE_LIST
|
|
||||||
fmt/8.0.1
|
|
||||||
spdlog/1.9.2
|
|
||||||
boost/1.75.0
|
|
||||||
gsl-lite/0.37.0
|
|
||||||
elfio/3.8
|
|
||||||
tcc/0.9.27
|
|
||||||
lz4/1.9.3
|
|
||||||
yaml-cpp/0.7.0
|
|
||||||
jsoncpp/1.9.5
|
|
||||||
)
|
|
||||||
|
|
||||||
set(CONAN_PACKAGE_OPTIONS fmt:header_only=True ${CONAN_BOOST_OPTIONS})
|
|
||||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
||||||
list(APPEND CONAN_PACKAGE_OPTIONS lua:compile_as_cpp=False)
|
|
||||||
list(APPEND CONAN_PACKAGE_LIST tcc/0.9.27 seasocks/1.4.4 lua/5.4.3)
|
|
||||||
endif()
|
|
||||||
if(NOT USE_CWR_SYSTEMC AND NOT USE_NCSC_SYSTEMC AND NOT DEFINED ENV{SYSTEMC_HOME})
|
|
||||||
set(CONAN_PACKAGE_LIST ${CONAN_PACKAGE_LIST}
|
|
||||||
systemc/2.3.3
|
|
||||||
systemc-cci/1.0.0
|
|
||||||
)
|
|
||||||
set(CONAN_PACKAGE_OPTIONS ${CONAN_PACKAGE_OPTIONS}
|
|
||||||
systemc:shared=${SHARED_FLAG}
|
|
||||||
systemc-cci:shared=${SHARED_FLAG}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
conan_check()
|
|
||||||
conan_add_remote(NAME minres URL https://git.minres.com/api/packages/Tooling/conan)
|
|
||||||
# Boost on CentOS 7 quirks: the b2 of conan-center is build against a newer libstdc++ and therefore does not run
|
|
||||||
# with the oooooold libs on CentOS 7. Therefore we build our own version of b2 if it is not there
|
|
||||||
set(B2_META $ENV{HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
|
|
||||||
if(DEFINED ENV{CONAN_USER_HOME})
|
|
||||||
set(B2_META $ENV{CONAN_USER_HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
|
|
||||||
endif()
|
|
||||||
if(NOT EXISTS ${B2_META})
|
|
||||||
conan_configure(REQUIRES b2/${B2_VERSION})
|
|
||||||
conan_cmake_autodetect(settings)
|
|
||||||
conan_cmake_install(PATH_OR_REFERENCE . BUILD b2 SETTINGS ${settings})
|
|
||||||
endif()
|
|
||||||
# Boost on CentOS 7 quirks end
|
|
||||||
conan_cmake_configure(REQUIRES ${CONAN_PACKAGE_LIST}
|
|
||||||
GENERATORS cmake_find_package
|
|
||||||
OPTIONS ${CONAN_PACKAGE_OPTIONS}
|
|
||||||
)
|
|
||||||
conan_cmake_autodetect(settings)
|
|
||||||
conan_install()
|
|
||||||
set(CONAN_CMAKE_SILENT_OUTPUT ON)
|
|
||||||
find_package(tcc QUIET)
|
|
||||||
find_package(elfio)
|
|
||||||
find_package(fmt)
|
|
||||||
find_package(spdlog)
|
|
||||||
find_package(gsl-lite)
|
|
||||||
|
|
||||||
set(Boost_NO_BOOST_CMAKE ON) # Don't do a find_package in config mode before searching for a regular boost install.
|
|
||||||
set(BOOST_ROOT ${CONAN_BOOST_ROOT})
|
|
||||||
find_package(Threads)
|
|
||||||
find_package(ZLIB)
|
|
||||||
|
|
||||||
include(clang-format)
|
|
||||||
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Add clang-tidy automatically to builds")
|
|
||||||
if (ENABLE_CLANG_TIDY)
|
|
||||||
find_program (CLANG_TIDY_EXE NAMES "clang-tidy" PATHS /usr/local/opt/llvm/bin )
|
|
||||||
if (CLANG_TIDY_EXE)
|
|
||||||
message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
|
|
||||||
set(CLANG_TIDY_CHECKS "-*,modernize-*")
|
|
||||||
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=${CLANG_TIDY_CHECKS};-header-filter='${CMAKE_SOURCE_DIR}/*';-fix"
|
|
||||||
CACHE STRING "" FORCE)
|
|
||||||
else()
|
else()
|
||||||
message(AUTHOR_WARNING "clang-tidy not found!")
|
set(SHARED_FLAG "False")
|
||||||
set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
|
endif()
|
||||||
|
|
||||||
|
set(CONAN_BOOST_OPTIONS
|
||||||
|
boost:fPIC=True
|
||||||
|
boost:shared=False
|
||||||
|
boost:header_only=False
|
||||||
|
boost:without_contract=True
|
||||||
|
boost:without_graph=True
|
||||||
|
boost:without_graph_parallel=True
|
||||||
|
boost:without_iostreams=True
|
||||||
|
boost:without_json=True
|
||||||
|
boost:without_locale=True
|
||||||
|
boost:without_log=True
|
||||||
|
boost:without_math=True
|
||||||
|
boost:without_mpi=True
|
||||||
|
boost:without_nowide=True
|
||||||
|
boost:without_python=True
|
||||||
|
boost:without_random=True
|
||||||
|
boost:without_regex=True
|
||||||
|
boost:without_stacktrace=True
|
||||||
|
boost:without_test=True
|
||||||
|
boost:without_timer=True
|
||||||
|
boost:without_type_erasure=True
|
||||||
|
boost:without_wave=True
|
||||||
|
)
|
||||||
|
|
||||||
|
set(B2_VERSION 4.9.6)
|
||||||
|
set(CM_VERSION 3.20.5)
|
||||||
|
set(LLVM_VERSION 13.0.0)
|
||||||
|
set(CONAN_PACKAGE_LIST
|
||||||
|
fmt/8.0.1
|
||||||
|
spdlog/1.9.2
|
||||||
|
boost/1.75.0
|
||||||
|
gsl-lite/0.37.0
|
||||||
|
elfio/3.8
|
||||||
|
lz4/1.9.3
|
||||||
|
yaml-cpp/0.7.0
|
||||||
|
jsoncpp/1.9.5
|
||||||
|
zlib/1.2.12
|
||||||
|
)
|
||||||
|
set(CONAN_PACKAGE_OPTIONS fmt:header_only=True ${CONAN_BOOST_OPTIONS})
|
||||||
|
|
||||||
|
if(WITH_LLVM)
|
||||||
|
list(APPEND CONAN_PACKAGE_LIST llvm-core/${LLVM_VERSION})
|
||||||
|
list(APPEND CONAN_PACKAGE_OPTIONS libiconv:shared=True)
|
||||||
|
endif()
|
||||||
|
if(WITH_ASMJIT)
|
||||||
|
list(APPEND CONAN_PACKAGE_LIST asmjit/cci.20230325)
|
||||||
|
list(APPEND CONAN_PACKAGE_OPTIONS asmjit:shared=False)
|
||||||
|
endif()
|
||||||
|
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbt-rise-plugins)
|
||||||
|
list(APPEND CONAN_PACKAGE_OPTIONS lua:compile_as_cpp=False)
|
||||||
|
list(APPEND CONAN_PACKAGE_LIST lua/5.4.3)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
conan_check()
|
||||||
|
conan_add_remote(NAME minres URL https://git.minres.com/api/packages/Tooling/conan)
|
||||||
|
###########################################################################
|
||||||
|
# Boost on CentOS 7 quirks: the b2 of conan-center is build against a newer libstdc++ and therefore does not run
|
||||||
|
# with the oooooold libs on CentOS 7. Therefore we build our own version of b2 if it is not there
|
||||||
|
###########################################################################
|
||||||
|
find_program(LSB_RELEASE_EXEC lsb_release)
|
||||||
|
if(NOT LSB_RELEASE_EXEC-NOTFOUND)
|
||||||
|
execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --id OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
if(LSB_RELEASE_ID_SHORT MATCHES "CentOS")
|
||||||
|
set(B2_META $ENV{HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
|
||||||
|
set(CM_META $ENV{HOME}/.conan/data/cmake/${CM_VERSION}/_/_/metadata.json)
|
||||||
|
set(LLVM_META $ENV{HOME}/.conan/data/llvm-core/${LLVM_VERSION}/_/_/metadata.json)
|
||||||
|
if(DEFINED ENV{CONAN_USER_HOME})
|
||||||
|
set(B2_META $ENV{CONAN_USER_HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
|
||||||
|
set(CMAKE_META $ENV{CONAN_USER_HOME}/.conan/data/cmake/${CM_VERSION}/_/_/metadata.json)
|
||||||
|
set(LLVM_META $ENV{CONAN_USER_HOME}/.conan/data/llvm-core/${LLVM_VERSION}/_/_/metadata.json)
|
||||||
|
endif()
|
||||||
|
if(NOT EXISTS ${B2_META})
|
||||||
|
conan_configure(REQUIRES b2/${B2_VERSION})
|
||||||
|
conan_cmake_autodetect(settings BUILD_TYPE Release)
|
||||||
|
conan_cmake_install(PATH_OR_REFERENCE . BUILD b2 SETTINGS ${settings})
|
||||||
|
endif()
|
||||||
|
if(NOT EXISTS ${CM_META})
|
||||||
|
conan_configure(REQUIRES cmake/${CM_VERSION})
|
||||||
|
conan_cmake_autodetect(settings BUILD_TYPE Release)
|
||||||
|
conan_cmake_install(PATH_OR_REFERENCE . BUILD cmake SETTINGS ${settings})
|
||||||
|
endif()
|
||||||
|
if(NOT EXISTS ${LLVM_META})
|
||||||
|
conan_configure(REQUIRES llvm-core/13.0.0)
|
||||||
|
conan_cmake_autodetect(settings BUILD_TYPE Release)
|
||||||
|
conan_cmake_install(PATH_OR_REFERENCE . BUILD llvm-core SETTINGS ${settings})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
###########################################################################
|
||||||
|
# Boost on CentOS 7 quirks end
|
||||||
|
###########################################################################
|
||||||
|
conan_cmake_configure(REQUIRES ${CONAN_PACKAGE_LIST}
|
||||||
|
GENERATORS cmake_find_package
|
||||||
|
OPTIONS ${CONAN_PACKAGE_OPTIONS}
|
||||||
|
)
|
||||||
|
conan_cmake_autodetect(settings)
|
||||||
|
conan_install()
|
||||||
|
set(CONAN_CMAKE_SILENT_OUTPUT ON)
|
||||||
|
|
||||||
|
find_package(fmt)
|
||||||
|
find_package(spdlog)
|
||||||
|
find_package(lz4)
|
||||||
|
find_package(gsl-lite)
|
||||||
|
find_package(yaml-cpp)
|
||||||
|
set(Boost_NO_BOOST_CMAKE ON) # Don't do a find_package in config mode before searching for a regular boost install.
|
||||||
|
set(BOOST_ROOT ${CONAN_BOOST_ROOT})
|
||||||
|
find_package(Threads)
|
||||||
|
find_package(ZLIB)
|
||||||
|
|
||||||
|
if(USE_CWR_SYSTEMC)
|
||||||
|
include(SystemCPackage)
|
||||||
|
endif()
|
||||||
|
###############################################################################
|
||||||
|
# setup clang-format and clang-tidy
|
||||||
|
###############################################################################
|
||||||
|
if (ENABLE_CLANG_TIDY)
|
||||||
|
set(CLANG_FORMAT_EXCLUDE_PATTERNS "scc" "install")
|
||||||
|
find_package(ClangFormat)
|
||||||
|
find_program (CLANG_TIDY_EXE NAMES "clang-tidy" PATHS /usr/bin )
|
||||||
|
if (CLANG_TIDY_EXE)
|
||||||
|
message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
|
||||||
|
set(CLANG_TIDY_CHECKS "-*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-avoid-bind.PermissiveParameterList")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-loop-convert.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-make-shared.")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-make-unique.")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-pass-by-value.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-raw-string-literal.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-auto-ptr.IncludeStyle")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-disallow-copy-and-assign-macro.MacroName")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-random-shuffle.IncludeStyle")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-auto.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-bool-literals.IgnoreMacros")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-default-member-init.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-emplace.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-equals-default.IgnoreMacros")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-equals-delete.IgnoreMacros")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-nodiscard.ReplacementString")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-noexcept.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-nullptr.NullMacros")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-override.*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-transparent-functors.SafeMode")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-using.IgnoreMacros")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors")
|
||||||
|
#set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},cppcoreguidelines-*")
|
||||||
|
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},clang-diagnostic-*,clang-analyzer-*")
|
||||||
|
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=${CLANG_TIDY_CHECKS};-header-filter='${CMAKE_SOURCE_DIR}/*';-fix"
|
||||||
|
CACHE STRING "" FORCE)
|
||||||
|
else()
|
||||||
|
message(WARNING "clang-tidy not found!")
|
||||||
|
set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(FW_BUILD)
|
||||||
|
include(FetchContent)
|
||||||
|
set(FETCHCONTENT_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/..)
|
||||||
|
FetchContent_Declare(
|
||||||
|
riscvfw
|
||||||
|
GIT_REPOSITORY https://git.minres.com/Firmware/Firmwares.git
|
||||||
|
GIT_TAG main
|
||||||
|
GIT_SHALLOW OFF
|
||||||
|
UPDATE_DISCONNECTED ON
|
||||||
|
)
|
||||||
|
FetchContent_GetProperties(riscvfw)
|
||||||
|
if(NOT riscvfw_POPULATED)
|
||||||
|
FetchContent_Populate(riscvfw)
|
||||||
|
endif()
|
||||||
|
add_subdirectory(${riscvfw_SOURCE_DIR})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(dbt-rise-core)
|
add_subdirectory(dbt-rise-core)
|
||||||
add_subdirectory(scc)
|
if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS" AND NOT USE_CWR_SYSTEMC)
|
||||||
|
set(SCC_CMAKE_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/scc)
|
||||||
|
add_subdirectory(scc/src/common)
|
||||||
|
else()
|
||||||
|
add_subdirectory(scc)
|
||||||
|
endif()
|
||||||
add_subdirectory(dbt-rise-tgc)
|
add_subdirectory(dbt-rise-tgc)
|
||||||
|
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbt-rise-plugins)
|
||||||
|
add_subdirectory(dbt-rise-plugins)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(CTest)
|
||||||
|
74
Jenkinsfile
vendored
Normal file
74
Jenkinsfile
vendored
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
void checkout_project(String repoUrl, String branch = 'develop') {
|
||||||
|
checkout([
|
||||||
|
$class: 'GitSCM',
|
||||||
|
branches: [
|
||||||
|
[name: "*/${branch}"]
|
||||||
|
],
|
||||||
|
extensions: [
|
||||||
|
[$class: 'CleanBeforeCheckout'],
|
||||||
|
[$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false]
|
||||||
|
],
|
||||||
|
submoduleCfg: [],
|
||||||
|
userRemoteConfigs: [
|
||||||
|
[credentialsId: 'gitea-jenkins', url: repoUrl]
|
||||||
|
]
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'git.minres.com/tooling/riscof_sail:latest'
|
||||||
|
args ' -e CONAN_USER_HOME=/var/jenkins_home/workspace/riscof_sail'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage("Checkout TGC-ISS"){
|
||||||
|
steps {
|
||||||
|
checkout_project("https://git.minres.com/TGFS/TGC-ISS.git", "develop")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("build TGC-ISS"){
|
||||||
|
steps {
|
||||||
|
sh 'conan profile new default --detect --force '
|
||||||
|
sh 'cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_ASMJIT=ON -DWITH_TCC=ON -DWITH_LLVM=ON'
|
||||||
|
sh 'cmake --build build -j'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Checkout TGC-Compliance"){
|
||||||
|
steps {
|
||||||
|
dir("TGC-COMPLIANCE"){
|
||||||
|
checkout_project("https://git.minres.com/TGFS/TGC-COMPLIANCE.git", "master")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Test backends"){
|
||||||
|
parallel {
|
||||||
|
stage("Test interp") {
|
||||||
|
steps {
|
||||||
|
sh "mkdir interp"
|
||||||
|
sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w interp --dockerless --backend interp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Test tcc") {
|
||||||
|
steps {
|
||||||
|
sh "mkdir tcc"
|
||||||
|
sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w tcc --dockerless --backend tcc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Test asmjit") {
|
||||||
|
steps {
|
||||||
|
sh "mkdir asmjit"
|
||||||
|
sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w asmjit --dockerless --backend asmjit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Test llvm") {
|
||||||
|
steps {
|
||||||
|
sh "mkdir llvm"
|
||||||
|
sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w llvm --dockerless --backend llvm"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -13,9 +13,10 @@ if { $distro == "CentOS" && ![info exists ::env(PROJECT)] && ![info exists ::env
|
|||||||
puts stderr "Don't forget to execute 'scl enable devtoolset-7 bash'"
|
puts stderr "Don't forget to execute 'scl enable devtoolset-7 bash'"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module load tools/utilities
|
||||||
module load tools/cmake
|
module load tools/cmake
|
||||||
#module load tools/gcc-riscv64/9.2.0
|
module load tools/clang
|
||||||
module load tools/gcc-riscv32-unknown-elf/11
|
module load tools/gcc-riscv64-unknown-elf/13
|
||||||
|
|
||||||
setenv PROJECT TGFS-ISS
|
setenv PROJECT TGFS-ISS
|
||||||
|
|
||||||
|
16
README.md
16
README.md
@ -45,7 +45,7 @@ This ISS is based in DBT-RISE, a library to allow rapid ISS creation.
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Accellera SystemC build
|
### Standalone (C++) build
|
||||||
|
|
||||||
* start an out-of-source build:
|
* start an out-of-source build:
|
||||||
|
|
||||||
@ -65,14 +65,22 @@ Assuming environment for Platform Architect is properly set up.
|
|||||||
```
|
```
|
||||||
|
|
||||||
cd TGC-ISS/
|
cd TGC-ISS/
|
||||||
export TGFS_INSTALL_ROOT `pwd`/install
|
export TGFS_INSTALL_ROOT=`pwd`/install
|
||||||
export SNPS_ENABLE_MEM_ON_DEMAND_IN_GENERIC_MEM=1
|
export SNPS_ENABLE_MEM_ON_DEMAND_IN_GENERIC_MEM=1
|
||||||
|
source $COWAREHOME/SLS/linux/setup.sh pae
|
||||||
export CC=$COWAREHOME/SLS/linux/common/bin/gcc
|
export CC=$COWAREHOME/SLS/linux/common/bin/gcc
|
||||||
export CXX=$COWAREHOME/SLS/linux/common/bin/g++
|
export CXX=$COWAREHOME/SLS/linux/common/bin/g++
|
||||||
cmake -S . -B build/PA -DCMAKE_BUILD_TYPE=Debug -DUSE_CWR_SYSTEMC=ON \
|
cmake -S . -B build/PA -DCMAKE_BUILD_TYPE=Debug -DUSE_CWR_SYSTEMC=ON \
|
||||||
-DBUILD_SHARED_LIBS=ON -DCODEGEN=OFF -DCMAKE_INSTALL_PREFIX=${TGFS_INSTALL_ROOT}
|
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=${TGFS_INSTALL_ROOT}
|
||||||
cmake --build build/PA --target install -j16
|
cmake --build build/PA --target install -j16
|
||||||
|
|
||||||
```
|
```
|
||||||
|
The Synopsys PA installation requirements may vary on your system.
|
||||||
|
Now you may change to the directory dbt-rise-tgc/contrib to import the core model
|
||||||
|
|
||||||
Now you may change to dbt-rise-tgc/contrib to import the core model
|
```
|
||||||
|
|
||||||
|
cd dbt-rise-tgc/contrib
|
||||||
|
pct tgc_import.tcl
|
||||||
|
|
||||||
|
```
|
13
build.sh
Normal file
13
build.sh
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
export TGFS_INSTALL_ROOT=`pwd`/install
|
||||||
|
module load tools/pa/T-2022.06
|
||||||
|
module load tools/cmake
|
||||||
|
export SNPS_ENABLE_MEM_ON_DEMAND_IN_GENERIC_MEM=1
|
||||||
|
export CC=$COWAREHOME/common/bin/gcc
|
||||||
|
export CXX=$COWAREHOME/common/bin/g++
|
||||||
|
cmake -S . -B build/PA -DCMAKE_BUILD_TYPE=Debug -DUSE_CWR_SYSTEMC=ON -DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DCODEGEN=OFF -DCMAKE_INSTALL_PREFIX=${TGFS_INSTALL_ROOT}
|
||||||
|
cmake --build build/PA --target install -j16
|
||||||
|
#cd dbt-rise-tgc/contrib
|
||||||
|
# import the TGC core itself
|
||||||
|
#pct tgc_import.tcl
|
||||||
|
|
@ -1 +1 @@
|
|||||||
Subproject commit fa6166ae43b90d4263e9d50402a055d6172ccb69
|
Subproject commit 6a5bb0fe5e067c23678876716777f8e65c60636a
|
@ -1 +1 @@
|
|||||||
Subproject commit cfa7b7236397dc84062dc108aadf4bb9c2a02e2b
|
Subproject commit 3fd51cc68c4547cb1e89d56a2010ff3af0ff5e97
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
conan==1.59
|
2
scc
2
scc
@ -1 +1 @@
|
|||||||
Subproject commit dfb06a90801b3a7e55b5d4a03d8f161a26063a1c
|
Subproject commit 4dcc5497c587afb0c77423aa532a29082bf03969
|
26
scripts/makeJitOutputReadable.py
Normal file
26
scripts/makeJitOutputReadable.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import re
|
||||||
|
import os
|
||||||
|
'''
|
||||||
|
This script takes all files that get dumped by the tcc backend when using the --dump-ir
|
||||||
|
option and replaces the Integers of addresses with their hex representation to allow
|
||||||
|
for easier debugging.
|
||||||
|
'''
|
||||||
|
current_dir = os.getcwd() # Get the current directory
|
||||||
|
|
||||||
|
files_with_tcc_jit = [file for file in os.listdir(current_dir) if"jit" in file and not file.startswith("readable")]
|
||||||
|
|
||||||
|
for each in files_with_tcc_jit:
|
||||||
|
readable_file = f"readable_{each}"
|
||||||
|
if os.path.exists(readable_file):
|
||||||
|
os.remove(readable_file)
|
||||||
|
with open(each, "r") as file:
|
||||||
|
content = file.read()
|
||||||
|
for each in files_with_tcc_jit:
|
||||||
|
with open(each, "r") as file:
|
||||||
|
content = file.read()
|
||||||
|
|
||||||
|
# Replace numbers ending with "U" by their hex representation
|
||||||
|
content = re.sub(r'\b(\d+)U\b(?=U)?', lambda m: hex(int(m.group(1))), content)
|
||||||
|
|
||||||
|
with open(f"readable_{each}", "w") as file:
|
||||||
|
file.write(content)
|
91
scripts/run_riscv_tests.sh
Executable file
91
scripts/run_riscv_tests.sh
Executable file
@ -0,0 +1,91 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
##
|
||||||
|
|
||||||
|
# Absolute path to this script, e.g. /home/user/bin/foo.sh
|
||||||
|
SCRIPT=`readlink -f "$0"`
|
||||||
|
# Absolute path this script is in, thus /home/user/bin
|
||||||
|
SCRIPTDIR=`dirname "$SCRIPT"`
|
||||||
|
SCRIPTNAME=`basename "$SCRIPT"`
|
||||||
|
function print_help {
|
||||||
|
echo "Usage: $SCRIPTNAME [-b <backend>] [-s <sim args>]}"
|
||||||
|
echo "Run UCB risc-v compliance test suite on backends"
|
||||||
|
echo "Optional cli arguments:"
|
||||||
|
echo " -b backend type, default all"
|
||||||
|
echo " -s <args> simulator arguments"
|
||||||
|
echo " -h print help"
|
||||||
|
echo " -v increase verbosity"
|
||||||
|
echo " -t set build type"
|
||||||
|
}
|
||||||
|
SIM_ARGS="-v1"
|
||||||
|
BACKENDS=("interp" "tcc" "llvm" "asmjit")
|
||||||
|
DEBUG=0
|
||||||
|
BUILD_TYPE=Debug
|
||||||
|
while getopts 'b:s:hvt:' c
|
||||||
|
do
|
||||||
|
case $c in
|
||||||
|
b) BACKENDS=($OPTARG);;
|
||||||
|
s) SIM_ARGS=$OPTARG ;;
|
||||||
|
h) print_help; exit 0 ;;
|
||||||
|
v) DEBUG=1 ;;
|
||||||
|
t) BUILD_TYPE = $OPTARG;;
|
||||||
|
?)
|
||||||
|
print_help >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
ROOT_DIR="$(dirname "$DIR")"
|
||||||
|
|
||||||
|
RISCV_TEST=$ROOT_DIR/build/riscv-tests
|
||||||
|
# prepare riscv-test binaries
|
||||||
|
if [ ! -d $RISCV_TEST ]; then
|
||||||
|
mkdir -p $ROOT_DIR/build; cd $ROOT_DIR/build
|
||||||
|
git clone --recursive https://github.com/riscv/riscv-tests.git
|
||||||
|
cd $RISCV_TEST
|
||||||
|
autoconf
|
||||||
|
./configure --with-xlen=32
|
||||||
|
cd $ROOT_DIR
|
||||||
|
make -C $RISCV_TEST -j -k
|
||||||
|
fi
|
||||||
|
# check that we have an executable
|
||||||
|
RISCV_EXE=$ROOT_DIR/build/${BUILD_TYPE}/dbt-rise-tgc/tgc-sim
|
||||||
|
if [ ! -x $RISCV_EXE ]; then
|
||||||
|
mkdir -p build/${BUILD_TYPE}
|
||||||
|
echo "running cmake -B build/${BUILD_TYPE} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_TCC=ON -DWITH_LLVM=ON "
|
||||||
|
cmake -S . -B build/${BUILD_TYPE} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_TCC=ON -DWITH_LLVM=ON ../.. || exit 1
|
||||||
|
cmake --build build/${BUILD_TYPE} -j 20 || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
test_ui_list=`find ${RISCV_TEST}/isa -type f -name rv32ui-p-\* -executable | grep -v fence | grep -v ma_data |sort`
|
||||||
|
test_uc_list=`find ${RISCV_TEST}/isa -type f -name rv32uc-p-\* -executable | grep -v fence | sort`
|
||||||
|
test_um_list=`find ${RISCV_TEST}/isa -type f -name rv32um-p-\* -executable | grep -v fence | sort`
|
||||||
|
test_list="$test_ui_list $test_uc_list $test_um_list $test_mmode_list"
|
||||||
|
|
||||||
|
for backend in "${BACKENDS[@]}"; do
|
||||||
|
failed_list=()
|
||||||
|
for elf in $test_list; do
|
||||||
|
[ $DEBUG -eq 0 ] || echo Running "${RISCV_EXE} $SIM_ARGS -f $elf --backend $backend"
|
||||||
|
${RISCV_EXE} $SIM_ARGS -f $elf --backend $backend
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
failed_list+="$backend:$elf "
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
tcount=`echo $test_list | wc -w`
|
||||||
|
if [ ! -z "$failed_list" ]; then
|
||||||
|
fcount=`echo $failed_list | wc -w`
|
||||||
|
echo "($backend) $fcount of $tcount test(s) failed:"
|
||||||
|
echo $failed_list | tr ' ' '\n'
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
echo "($backend) All $tcount tests passed."
|
||||||
|
if [ $DEBUG -eq 1 ];then
|
||||||
|
echo "List of executed tests:"
|
||||||
|
for t in $test_list; do
|
||||||
|
name=`basename $t`
|
||||||
|
echo " $name"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user