More About System Requirements
The macro _RWCONFIG=buildtag handles all SourcePro-specific preprocessor macros, but not system-specific requirements. To determine what the system requirements are, consult SourcePro examples log files or makefiles.
But which file should be consulted? A buildspace may contain a large number of different builds, with log files and makefiles for each.
For example, let’s assume your application:
will be built with the
12s build configuration
links to the Essential Tools Module and to the trace package of the Threads Module in SourcePro Core
The location of the files that would be best to look at is:
buildspace
examples
trace
12s
some_example.log // FIRST CHOICE
makefile // SECOND CHOICE
It is a good practice to look at the files for the most dependent library. This means that the trace package locations are shown in the example directory rather than the Essential Tools Module locations. Since trace depends on the Essential Tools Module, the trace files will include the requirements for both libraries.
The examples files are preferable to the library files because they most closely represent your situation: building an application based on SourcePro libraries.
Here are a few lines from the examples makefile, including the critical line with the COMPILEFLAGS variable:
#C++ macros
TAG=12s
CPPINVOKE=cl
COMPILEFLAGS=-nologo -EHsc -MD -W3 -O2 -arch:SSE2 -GR \
-D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE \
-D_CRT_NONSTDC_NO_DEPRECATE
CONFIGDEF=-D_RWCONFIG=$(TAG)
The COMPILEFLAGS variable tells you the flags you need: -nologo -EHsc -MD -W3 -O2
-arch:SSE2 -GR -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE
-D_CRT_NONSTDC_NO_DEPRECATE.
Here is the resulting compile line as shown in the example log file:
cl -D_RWCONFIG=12s -I.\..\..\.. -Ic:\RogueWave\SourcePro\<ver>
-Ic:\RogueWave\SourcePro\<ver>\examples\trace -nologo -EHsc -MD -W3 -O2
-arch:SSE2 -GR -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE
-D_CRT_NONSTDC_NO_DEPRECATE
-c c:\RogueWave\SourcePro\<ver>\examples\trace\CoffeeRobot.cpp
The link line at the end of the log shows the SourcePro libraries and any system libraries that were linked in:
cl /Fe CoffeeRobot.exe CoffeeRobot.obj trace12s.lib tls12s.lib user32.lib
/link /LIBPATH:.\..\..\..\lib -nologo
The example links to the SourcePro libraries tls12s.lib and trace12s.lib, and the system library user32.lib.