-
Notifications
You must be signed in to change notification settings - Fork 27
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
Python3 & CMake build + Thread caused bug fix #21
Open
grybouilli
wants to merge
161
commits into
grrrr:python3
Choose a base branch
from
grybouilli:python3
base: python3
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
lib.version is only expanded if the file named by $(metafile) exists, but then it uses a hardcoded filename to do the actual expansion. this patch uses $(metafile) to do the expansion instead.
use $(metafile) instead of hardcoded filename in lib.version expansion
This commit reorganizes the accumulation of build flags in such a way that non-obligatory build flags can be overriden or added by specifying CPPFLAGS, CFLAGS and LDFLAGS as arguments from command line or environment.
I've also tried to make printed info a bit more helpful.
Targets pre and post can be defined in the including (library) makefile. They are added to provide extra flexibility. Target all will build pre, $(executable) and post in deterministic order. Built-in documentation is modified to reflect the new situation.
This merge introduces the evaluation of optional multiline defines 'forLinux', 'forDarwin' and 'forWindows', which can be used as a flexible replacement for system-specific variables as in Pd-extended's Makefile template. Example code is added to Makefile.pdlibbuilder's built-in documentation.
Command line variable CFLAGS now work according to conventions (overriding all non-essential C flags). CPPFLAGS and LDFLAGS are also implemented. Built-in documentation updated.
Phony target 'pre' forces rebuilds. This should not be default behavior of Makefile.pdlibbuilder. If one needs a pre-build target (phony or real file), declare it as prerequisite of $(all.objects) in the library makefile after inclusion of Makefile.pdlibbuilder. A pre-build target can have any name that isn't a target in Makefile.pdlibbuilder.
Also remove associated documentation comments.
Multiple arch flags are incompatible with option -MM for preprocessor on (at least) OSX <= 10.5. Non clean builds would stall on this. This commit disables dependency checking for fat builds (current default for OSX) on ppc and i386. Assuming that development is done on newer systems / machines it should rarely hurt.
The bug was probably introduced with version 0.2.3. Bump version to 0.2.4.
And bump version to 0.2.5
- define cache variables instead of plain variable for user-configurable options; those will display nicely in any CMake gui and are self-documenting; - use Python3 module instead of hardcoded paths to python/numpy; - try to automatically determine the shared library suffix (e.g.: .pd_darwin) using Python's `platform` module (note: I tested this only on Darwin); - add a STRIP_TARGET option to make `strip` optional; strip fails on Darwin, probably because some GNU-specific switch has been used; - removed some architecture-specific options which caused build to fail on arm64; those options should anyway not be hardcoded via target_compile_options() but rather set into the specific CMAKE_* variable (e.g. `CMAKE_CXX_FLAGS`, or `CMAKE_CXX_FLAGS_RELEASE`); - refactored some cpp options into the proper CMake commands; - removed the POST_BUILD `mkdir` && `cp` command, and used the more appropriate CMake `install(...)` command.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CMakeLists.txt
to build with cmake (thanks to @fferri for the improvements)