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

Don't build the Python wrappers by default #234

Open
agarny opened this issue Jun 20, 2018 · 5 comments
Open

Don't build the Python wrappers by default #234

agarny opened this issue Jun 20, 2018 · 5 comments

Comments

@agarny
Copy link
Contributor

agarny commented Jun 20, 2018

Right now, if I try to build libCellML using the default settings, it will try to build the Python wrappers. However, I am not sure we want that, especially if we are to support other bindings (e.g. Java bindings, see issue #233).

@hsorby
Copy link
Contributor

hsorby commented Jun 21, 2018

Currently the build generation determines what is available and builds all that is possible. If Java bindings were possible and everything was available for building the Java bindings then they would also be built. I think this is the correct default behaviour.

@agarny
Copy link
Contributor Author

agarny commented Jun 21, 2018

Well, I didn't have SWIG installed and the build system complained about it. After I installed SWIG, everything went fine. So, in that respect, I wouldn't have expected the build system offering to build the Python bindings. Also, libCellML is a C++ library, so I would, by default, only expect the C++ libCellML to be built unless I explicitly ask for the Python bindings.

@MichaelClerx
Copy link
Contributor

I'm with Alan on this one!

@nickerso
Copy link
Contributor

It seems pretty standard that everything that can be built should be built, i.e., a default configure and build will result in all the features of the library being built (where possible). The developer would then explicitly need to turn off the features they don't want.

@agarny
Copy link
Contributor Author

agarny commented Jun 21, 2018

Right now, if I call ccmake, I get:

LIBCELLML_BINDINGS_PYTHON       *ON
LIBCELLML_BUILD_SHARED          *ON
LIBCELLML_BUILD_TYPE            *Debug
LIBCELLML_COVERAGE              *ON
LIBCELLML_INSTALL_PREFIX        */usr/local
LIBCELLML_TREAT_WARNINGS_AS_ER  *ON
LIBCELLML_UNIT_TESTS            *ON

while, personally, I would expect to get:

LIBCELLML_BINDINGS_PYTHON       *OFF
LIBCELLML_BUILD_SHARED          *ON
LIBCELLML_BUILD_TYPE            *Release
LIBCELLML_COVERAGE              *OFF
LIBCELLML_INSTALL_PREFIX        */usr/local
LIBCELLML_TREAT_WARNINGS_AS_ER  *ON
LIBCELLML_UNIT_TESTS            *OFF

i.e. settings that would allow me to build a shared release version of libCellML that I could then use with, say, OpenCOR. I believe this is probably what most people will want to build rather than a debug version with coverage, unit test, etc. or even bindings.

In any case, if I understood right, the current build system is "flawed" in that it shouldn't have been complaining about SWIG not being installed on my system.

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

No branches or pull requests

4 participants