Opened 11 years ago
Closed 9 years ago
#25 closed defect (duplicate)
Build System Master Ticket
Reported by: | Scooter Morris | Owned by: | Greg Couch |
---|---|---|---|
Priority: | blocker | Milestone: | Core API Complete |
Component: | Build System | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | Infrastructure |
Description
Change History (4)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
The current Hydra app build requires knowing the version numbers of various prerequisite packages: numexpr, collada, pyopengl, ... in order to copy those Python modules into the Mac app hierarchy. The modules are in Python "eggs" that include the version number in the name. But the version numbers are not accessible -- they only appear in the prereqs subdirectory Makefiles. So the Mac app build Makefile (hydra/Makefile) includes its own copy of the version numbers. When prereqs are updated to a new version it is a nuisance to update the version number in this other place. In Chimera 1 we solved this by having a foreign.make file that lists the version numbers of all prerequisite packages. The Chimera 1 build uses this extensively in building prerequisites since those often depend on other prerequisites and each is installed in its own directory usually with a version number. So when a prerequisite build depends on another prerequisite it used foreign.make to find it. In Chimera 2 we currently install all prerequisites in one bin/lib/include/share set of directories, so the prerequisites currently don't need to find dependencies since they are all installed in the same place.
Greg Couch didn't like the idea of having foreign.make in Chimera 2 to list the version numbers, preferring to keep the version number in the prerequisite Makefile. He suggested that prerequisites should state whether they need to be put into the final app distribution, perhaps by writing to file when they are built.
comment:3 by , 11 years ago
Conrad is working on building chimera2 using pip and setup.py. The next step will be to create our own repositories for the daily and the production builds. And have the build machines make the binary packages and deposit those back in the build repository. We also need to make a sample application that uses our repository to install and update itself.
comment:4 by , 9 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
No longer using "master" tickets. Instead use individual tickets for specific features.
It would be nice to be able to use the Chimera 2 Python modules without setting any environment variables to tell it where to find shared libraries on operating systems where this is possible. Currently Mac Hydra does this, setting relative linker paths in the Python C++ modules to any needed shared libraries in the app. It is straightforward on the Mac using install_name_tool to make the library paths relative when building the app. Over the years it has been asked on the Chimera mailing list how to use the Chimera 1 Python modules directly from Python without starting Chimera, and the answer has always been complex details about how to setup environment variables, usually with an exchange of several emails before they can get it to work.