Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support building with platform specific commands #603

Open
ghost opened this issue Jun 12, 2017 · 1 comment
Open

Support building with platform specific commands #603

ghost opened this issue Jun 12, 2017 · 1 comment

Comments

@ghost
Copy link

ghost commented Jun 12, 2017

Corto's build system has become impressively stable and feature-rich supporting osx and linux projects. Several dependencies require platform dependent build flags such as macros or switch for variable size (-m32 or -m64). I propose we specify support for multiple platforms to ensure packages and applications are as portable as possible between build systems. I consider this functionality to be similar to the logic the build system employs to install packaged binaries from "Install" directory.

    "id": "oasys/core/dds/connext/factory",
    "type": "package",
    "value": {
        "description": "Factory for creating creating DDS entities",
        "author": "Alex Hendren",
        "version": "1.0.0",
        "language": "cpp",
        "managed": false,
        "noapi": true,
        "platforms": [
            {
                "linux": {
                    "name" : "linux-x64",
                    "include" : [
                        "$(CORTO_INCLUDE)/unix"
                    ],
                    "dependencies" : [
                        "oasys/core/common",
                        "oasys/core/dds/connext/vendor"
                    ],
                    "CXXFLAGS": ["-DRTI_UNIX -m64"]
                }
            },
            {
                "Darwin": {
                    "name" : "osx",
                    "include" : [
                        "$(CORTO_INCLUDE)/darwin"
                    ],
                    "dependencies" : [
                        "oasys/core/common",
                        "oasys/core/dds/connext/vendor"
                    ],
                    "CXXFLAGS": ["-DRTI_DARWIN"]
                }
            }
        ]
    }
}

@SanderMertens
Copy link
Member

The buildsystem design will be changed after mixin support is added to the typesystem (#590). Mixins will allow dynamically adding fields to an object after it has been defined. This allows the buildsystem to split concerns; where right now all C/C++ flags are located in the package object, language specific settings can then be captured in their own mixin type.

After this design has taken place, it would be good to see how this feature can be best designed in. I agree this is useful functionality.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant