casual-build-executable¶
Builds a causal-executable. That is, an executable with XA-resources linked in that will
be initialized on boot.
The provided entrypoint will be invoked after casual has done some initialization magic
for the XA-resources. Hence, your entrypoint is your main, and you can start using your
`XA-resources’ from there.
prerequisite¶
casual is installed and CASUAL_HOME is set to the install path.
example¶
We have our main.cpp, which defines the entrypoint start
extern "C"
{
   int start( int argc, char** argv)
   {
      // do stuff with your xa-resources 
      return 0;
   }
}
We use a executable-definition-file to define the resources and entrypoint. We name this my-executable.yaml,
See missing link? casual/middleware/configuration/example for more information.
executable:
  resources:
      # key of the resource (defined in resource-properties)
    - key: rm-mockup
      # a logical name that this server will use to get the proper runtime configuration.
      # it's probably a good idea to have names like <resource-type>/<application>, ex: db/my-application
      # to make it easier to configure correctly. Can be any name though.
      # If the domain does not have resource-configuration for the defined name, the executable will not boot.
      name: resource-1
      
  entrypoint: start
see build-executable-example for further details.
We want the server to be named
my-executableUse the definition-file to define the executable (which adds a dependency to a resource with the name
resource-1and the keyrm-mockup)Pass the source file main.cpp to
casual-build-executableto be compiled at the same time as building the server.
$ casual-build-executable --output my-executable --definition my-executable.yaml --build-directives main.cpp 
custom¶
casual-build-executable assumes gcc/g++ option compatibility for default stuff. If you use another compiler you can
opt in not to use default include/library-paths and so on.
note: you need to provide all paths, libraries and such
$ casual-build-executable --no-defaults --output my-executable --definition my-executable.yaml --build-directives main.cpp <all other stuff your compiler needs>