Model RealTime 10.3 2020.10

173483: Rose RealTime importer: Output folder variable is expanded in imported component

RoseRT Importer has been updated and now it is always importing RoseRT OutputDirectory to default outputLocation in Model RealTime (tc.outputLocation is not set and by default current workspace is used). Even if OutputDirectory has some custom setting, like c:\temp_build\$BUILD_FOLDER\${name}, it will still be imported to default outputLocation.
To generate code to some custom target location different from current workspace, you can manually update target location for all tcjs at once by changing targetLocation property in the parent CppLibrariesDefaults.tcjs which is also created during import. Or use model compiler command line option --out.

173471: Rose RealTime importer: support $name and other variables when converting components

Improved support for $name, ${name}, $(TCONFIG_NAME) and $(CONNEXIS_HOME) variables in RoseRT Importer and Model RealTime.
The following improvements have been implemented:
1) $name or ${name} is imported into $(TCONFIG_NAME) (before it was resolved to the actual name of component)
In Model RealTime we have TCONFIG_NAME variable which points to the file name of tcjs. This variable actually corresponds to $name from RoseRT.
2) Fixed Makefile generator to replace $(TCONFIG_NAME) with indexed TCONFIG_NAME variable, for example, $(0_TCONFIG_NAME) in compile arguments.
So now, RoseRT compile command which references $name, for example:
CompileCommand = $(CC) $(PCH_INCPATHS) /Yc"RTSystem/$name.h"
is imported to Model RealTime like this:
tc.compileCommand = '$(CC) $(PCH_INCPATHS) /Yc"RTSystem/$(TCONFIG_NAME).h"';
and then generated into Makefiles like this:
0_TCONFIG_NAME = MyComp
0_CC = $(CC) $(PCH_INCPATHS) /Yc"RTSystem/$(0_TCONFIG_NAME).h"
3) In RoseRT by default OutputDirectory = $@/$name, and it is imported to default in Model RealTime. RoseRT Importer has been updated to consider $@/${name} also as default case in Model RealTime.
4) $(TCONFIG_NAME) is now resolved in target project and target location
5) Added generation of CONNEXIS_HOME variable into Makefiles:
RSA_RT_HOME = C:/_Install/Model RealTime_Photon_latest/rsa_rt
CONNEXIS_HOME = $(RSA_RT_HOME)\Connexis
Fixed in Model RealTime 10.3 2020.10

173459: Model RealTime 10.3 (10.3.0.v20200131_1117) improperly generates code for pointer to function

Model Compiler incorrectly generated code for pointer to function template parameter, brackets ")(" were missing which resulted in compilation errors like this:
../Class1.h:21:140: error: template argument 2 is invalid
This problem has been fixed in Model RealTime 10.3 2020.10.

173435: Pre-compiled headers does not work when Unit subdirectory is used

Unit precompiled headers were not working correctly when Unit subdirectory was used and resulted in the following error:
c1xx: fatal error C1083: Cannot open compiler intermediate file: 'RTSystem/PchLib.pch': No such file or directory
This problem has been fixed now. Unit subdirectory is also created in the build folder and precompiled headers can be generated and used correctly.
Fixed in Model RealTime 10.3 2020.10

173425: Support cyclic dependencies between TCs

Now cycles in TC dependencies are supported. This is controlled by global preference "Allow cyclic dependencies between TCs" (false by default). Support for TC cycles can also be enabled by defining JVM property: -DRTAllowCyclicDependencies=true
By default TC cycles are not allowed and if code generator finds cycles in TC dependency graph, it will report an error. If preference "Allow cyclic dependencies between TCs" is set, then an info message will be printed instead, like this:
10:27:23 : INFO : Prerequisite dependency from Test2/LibTC3.tcjs to Test2/LibTC1.tcjs forms part of a cycle
Implemented in Model RealTime 10.3 2020.10

172988: CQPAR00243886 - ModelCompiler handles 'Unit subdirectory' in a faulty way

Model Compiler has been fixed to correctly handle Unit subdirectory (and also Output subdirectory) when generating makefiles. Now the same sub-folders are created under target configuration folder and unit object files are created under Unit subdirectory during build. This is delivered in 10.3 2020.10

172686: CQPAR00240601 - RSA-RTE: Code generator generates incorrect code from model

Code generator now generates correct code for variadic templates and polymorphic wrappers for function objects. This was delivered in 10.3 2019.11

114767: Linking: The command line size limits size of the RSA-RTE model (number of objects)

Long list of objects in the link command for Visual Studio compilation can be solved by defining ALL_OBJS_LIST = %$(ALL_OBJS_LISTFILE) in Compilation make insert for the top TC and using default $(LD) pointing to ld.pl as link command