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

Establish independent build process #4

Closed
rhyolight opened this issue Feb 5, 2014 · 13 comments · Fixed by #47
Closed

Establish independent build process #4

rhyolight opened this issue Feb 5, 2014 · 13 comments · Fixed by #47
Assignees
Milestone

Comments

@rhyolight
Copy link
Member

nupic.core currently only contains source files that used to exist in nupic. The project should have a build process so it can build itself, and it should be easily usable by other projects (like language bindings and/or clients) like nupic.

Once this is done, nupic should be able to call this build script as a part of its build process instead of doing the build within that repo.

@sjmackenzie
Copy link

this independent build process work item is dependent on nupic's transition to cmake.

@david-ragazzi
Copy link
Contributor

The CMake file for nupic.core is done!

However it depends that these things are defined:

  • Either HtmTest should be removed from Nupic.Core or then python items should be removed from it.
  • The same above to TestEverything (which the "unittests" folder are in nupic.core subfolders). The difference is that TestEverything folder still is in "qa" folder at Nupic repository.

These things need being done:

  • Remove "nta" from path of all include directives, i.e. replace "include <nta/something> to "include ".
  • Move all folders (except things like "doc", "licences", etc) to "source" folder (of course, if you liked the directories structure proposed by me).

When I remove HtmTest and TestEverything from CMake file and fix the include directives, it generate and compiles with success! The output is the static libraries ("libos.a", "libsupport.a", etc). But shouldn't the "nupic.core" releasing also a dynamic library ("nupic.core.so" or "nupic.core.dll") rather only static libraries?

@breznak
Copy link
Member

breznak commented Feb 6, 2014

Hi,

On Thu, Feb 6, 2014 at 12:45 PM, david-ragazzi notifications@github.comwrote:

These things need being done:

  • Remove "nta" from path of all include directives, i.e. replace
    "include "nta/something" to "something".

could we leave the nta/ as a prefix (~namespace)? it would save the rename
hurtle and stay compact in case we wanted to reshuffle somehow later.

When I remove HtmTest and TestEverything from CMake file and fix the
include directives, it generate and compiles with success! The output is
the static libraries ("libos.a", "libsupport.a", etc). But shouldn't the
"nupic.core" releasing also a dynamic library ("nupic.core.so" or
"nupic.core.dll") rather only static libraries?

I dont think it matters. All "projects" building on nupic.core will include
the stand-alone nupic.core. Dyn/Static is a switch to gcc/linker, not sure
how to pass it from CMake though.

Thanks, M.

@david-ragazzi
Copy link
Contributor

@breznak

I dont think it matters. All "projects" building on nupic.core will include the stand-alone nupic.core. Dyn/Static is a switch to gcc/linker, not sure how to pass it from CMake though.

I believe I don't understand well your thought. :-( But I will answer from what I understand:
I think user don't need explicit (by CMake command line extra options) what he wants as output from build process. Both static and dynamic libraries could be outputed without any user interaction. He could take the ouput which interest him. So for this be possible, I only have to add a command for create a dynamic library from static libraries (I just would re-use the macro for compile "cpp_region" dynamic library).

Please if I'm talking nonsense, feel free to correct me.. hehe

@david-ragazzi
Copy link
Contributor

Or "cpp_region" dylib already is this dynamic library?? It has some time I don't see its code..

@rhyolight
Copy link
Member Author

@sjmackenzie I don't understand why we need CMake in nupic to accomplish this task. Once nupic.core is responsible for its own build, why would we still be using CMake in nupic if it's just a python project?

@sjmackenzie
Copy link

That makes sense, thanks for bringing that perspective to my understanding.
Yes python people have their own way of doing things!

@subutai
Copy link
Member

subutai commented Feb 7, 2014

@rhyolight If the python project contains python bindings to nupic.core, we still need to run SWIG, compile and build those bindings. If not CMake we need something else.

@rhyolight
Copy link
Member Author

@subutai Makes sense, but I wouldn't call CMake in nupic a prerequisite for this issue. Work can be started on this issue right now.

@rhyolight
Copy link
Member Author

Before we start on this build system, I think we should get the new directory structure in place. So this ticket should depend on #15.

@david-ragazzi
Copy link
Contributor

@rhyolight
It's better I work with CMake and the new structure at same time!

Could you assign this job to me?? Please! I promisse a working repo in a week!

@rhyolight
Copy link
Member Author

@david-ragazzi Of course! 😄

@rhyolight
Copy link
Member Author

Now that numenta/nupic-legacy#657 is merged, we are ready to work on this task!

@rhyolight rhyolight removed this from the Sprint 16 milestone Feb 28, 2014
@rhyolight rhyolight modified the milestones: Sprint 18, Sprint 17 Mar 14, 2014
@rhyolight rhyolight modified the milestones: Sprint 19, Sprint 18 Mar 27, 2014
rhyolight pushed a commit that referenced this issue Apr 21, 2014
merge numenta:master@HEAD
scottpurdy pushed a commit that referenced this issue Feb 14, 2015
chetan51 pushed a commit that referenced this issue Jul 20, 2015
breznak referenced this issue in breznak/nupic.core Dec 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants