Commit Graph

204 Commits

Author SHA1 Message Date
Campbell Barton 7389fd9a35 Icons: resolve various issues for generating icons
- INKSCAPE_BIN environment variable was ignored by
  alert_icons_update & prvicons_update.
- `make icons` wasn't regenerating alert icons.
- Updating SVG icons failed using blender built with ASAN.
2021-08-04 11:35:05 +10:00
Campbell Barton e45a57656c GNUmakefile: add 'check_mypy' convenience target 2021-04-14 11:36:46 +10:00
Sybren A. Stüvel b8479a70c9 Add `make source_archive_complete` target
Add a `source_archive_complete` target for `make` that creates a source
archive including the source packages of Blender's dependencies.

This expands `make_source_archive.py` to include files from
`${BUILD_DIR}/source_archive/packages/` as well.

Reviewed By: dfelinto

Maniphest Tasks: T86124

Differential Revision: https://developer.blender.org/D10727
2021-04-13 17:47:48 +02:00
Ray Molenkamp f02e1a77c9 Makefile: add update_code target
Convenience target for updating the code, skipping SVN.

The Python script supports it, but this wasn't exposed in the makefile.

Ref D10457
2021-03-31 22:34:11 +11:00
Sybren A. Stüvel 8771f015f5 Python version of `make_source_archive.sh`
This is a Python version of the existing `make_source_archive.sh`
script. IMO it's easier to read, and it'll also be easier to extend with
the necessary functionality for D10598.

The number of lines of code is larger than `make_source_archive.sh`, but
it has considerably less invocations of `awk` ;-) And also the filtering
is integrated, instead of forking out to Python to prevent certain files
to be included in the tarball.

Reviewed By: dfelinto, campbellbarton

Differential Revision: https://developer.blender.org/D10629
2021-03-08 18:10:26 +01:00
Campbell Barton 6a12c50703 Docs: add notes to 'make deps' & the sqlite build configuration
- Move non-blender build targets into their own section.
- Expand 'make help' text, noting a local 'make deps' overrides.
- Note where the spell checkers word-list is maintained.
- Note on why sqlite is built without 'tcl'.
2021-02-12 16:33:59 +11:00
Brecht Van Lommel 886486615b macOS: use precompiled libraries for arm64 build
Standard wiki build instructions for building Blender on macOS can now be used
on Macs with ARM processors.

This contains all libraries except for Embree and OpenImageDenoise, so Cycles
performance does not yet have full performance and features in this build. An
x86-64 build is likely to still render faster than arm64 until Embree is added.

Uses the new lib/darwin_arm64 folder. For simplicity and to keep download size
under control, both for end users and builders, we are not planning to ship
universal binaries. So this is a separate folder from lib/darwin.

Ref T78710

Differential Revision: https://developer.blender.org/D10276
2021-02-02 12:08:23 +01:00
Ankit Meel 27e2c5ab78 Tests, docs: Use sanitizer options from environment too.
Don't overwrite environment variables that may
contain options like suppression files, symboliser etc.
It's similar to rBa181b156399a13fa429159112e30c8005d5e8a59
and rBA589d13408a60cbec34a8bc3cc798c586043743ae .
For Blender Add-ons repo, see the equivalent in D9816.

Reviewed By: Blendify
Differential Revision: https://developer.blender.org/D9815
2021-01-29 14:13:26 +05:30
Matt Hill fdb7623e09 Unix/macOS: support building with Ccache
This adds an option (WITH_COMPILER_CCACHE) to build using Ccache if it's
found. Makefiles-based, Ninja-based and Xcode generators are supported.

Pass `-DWITH_COMPILER_CCACHE=ON` to cmake to enable Ccache.
Utility option in GNUmakefile is also added: for e.g.,
`make ninja ccache`.

Reviewed By: brecht, ankitm
Differential Revision: https://developer.blender.org/D9665
2020-12-21 10:47:35 +05:30
Alistair Sealy f52f51aef2 Cleanup: spelling in comments
Fixed a couple of typos in comments in CMakeLists.txt and GNUmakefile

Reviewed By: #platforms_builds_tests, mont29

Differential Revision: https://developer.blender.org/D9261
2020-10-19 09:27:32 +02:00
Aaron Carlisle 2f1a0f6f0e PyDoc: Multithread sphinx-build
Compile times went from over 5min to under 2 on my laptop.
2020-10-07 10:25:46 -04:00
Aaron Carlisle e748abda92 PyDoc: Remove workaround for slow sphinx builds
Tesing with newer versions of sphinx to directory `sphinx-build` is 
executed has no affect on the build time. Testing even gave a 2-3% speed 
boost.
2020-10-07 10:25:46 -04:00
Campbell Barton 9978485e82 Makefile: update spell checking targets
Update check_spelling targets to match changes to the utility,
take an optional CHECK_SPELLING_CACHE argument.
2020-09-06 02:19:58 +10:00
Brecht Van Lommel e707ed43ef Build: show helpful error when accidentally using GNUMakefile on Windows 2020-06-26 11:55:34 +02:00
Aaron Carlisle c73ee8d998 Makefile: Add build target for release
Fixes T77353
2020-06-11 17:28:01 -04:00
Campbell Barton cbd6c5735d GNUmakefile: remove style checking targets
This has been removed since clang-format now enforces code-style.
2020-04-17 12:33:40 +10:00
Brecht Van Lommel 6669eca820 Build: use clang-format from precompiled libraries for make format on Linux
Ref T73747
2020-02-15 13:44:20 +01:00
Brecht Van Lommel 2ff1919b45 Fix make BUILD_CMAKE_ARGS not combining with targets like ninja and lite
Previously make BUILD_CMAKE_ARGS="" on Linux and macOS would override any cmake
arguments that come from the targets. Now they are concatenated.
2019-11-22 17:38:15 +01:00
Campbell Barton 99640d0622 Fix building on NetBSD 2019-11-18 16:27:06 +11:00
Campbell Barton 60d0446db3 GNUmakefile: use tar.xz instead of tar.gz
Also rename "make tgz" to "make source_archive" as it wasn't clear
this only archived the source, not binaries.

D6153 by @JRottm with minor edits
2019-10-31 00:19:05 +11:00
Brecht Van Lommel 64c8e9a219 macOS: don't require python3 to be installed to run "make update"
And fall back to python3 from our libraries for other commands, once checked
out with make update.
2019-09-30 10:51:17 +02:00
Brecht Van Lommel 6472662d66 Build: add "make test" command for Windows, output log file
Differential Revision: https://developer.blender.org/D5715
2019-09-12 20:23:03 +02:00
Brecht Van Lommel 464e545c72 Tests: move "make test" on macOS and Linux to Python script 2019-08-30 17:57:18 +02:00
Brecht Van Lommel 018fe9e006 Build: move "make update" on macOS and Linux to Python script
Differential Revision: https://developer.blender.org/D5545
2019-08-30 17:57:18 +02:00
Brecht Van Lommel 410cde82e3 Fix "make deps" error when building deps with make and Blender with ninja 2019-08-30 17:57:18 +02:00
Brecht Van Lommel 4815bd7748 Fix wrong detection in recent ninja build change 2019-08-12 17:28:01 +02:00
Brecht Van Lommel 102035373a Build: automatically detect ninja build system when running "make"
So that you don't have to specify "make ninja" every time.
2019-08-12 15:24:23 +02:00
Brecht Van Lommel afff94f09f Build: add ninja target to make wrapper
To use the ninja build tool which is typically faster than make, especially
for quick rebuilds.
2019-08-05 15:25:36 +02:00
Brecht Van Lommel 2d60a54649 Build: add config for developers
This has faster builds, error checks and tests. The number of cmake options
for this type of thing has grown over the years and it's convenient to be
able to point new developers to a single target.

Previously the combination of all these options did not work correctly, now
all tests should pass.

The easiest way to use this is with the make wrapper, for example:
make full developer debug

Or set it manually with CMake:
cmake -C ../blender/build_files/cmake/config/blender_developer.cmake .

Differential Revision: https://developer.blender.org/D5149
2019-08-05 15:25:36 +02:00
Campbell Barton 760dbd1cbf Cleanup: misc spelling fixes
T68035 by @luzpaz
2019-08-01 14:02:41 +10:00
Brecht Van Lommel c553b790fc macOS: rename blender.app to Blender.app
Using a capitalized app name fits the platform guidelines. Since macOS file
systems are case insensitive by default this should not break scripts that
assume lowercase.
2019-06-21 23:37:40 +02:00
Dmitriy Efimov 8efc781ddc GNUMakeFile: Fix bad command line to generate QTCreator project.
Report with fix in D5035 by Dmitriy Efimov (@DarkDemiurg), thanks.
2019-06-07 14:27:46 +02:00
Campbell Barton 6b9ce24338 GNUMakefile: disable tab expansion for 'make format'
This was only needed for initial migration.
2019-04-21 04:36:16 +10:00
Campbell Barton 65aebd0c11 GNUmakefile: move clang format utility
Makes more sense to place in 'utils_maintenance'.
2019-04-16 16:49:32 +02:00
Campbell Barton d5a76451c0 GNUmakefile: add 'make format'
Convenience access to clang_format_paths.py utility.
2019-04-16 15:43:42 +02:00
Campbell Barton b1c3d91aed Makefile: icons target now uses make variables
Add examples in help text.
2019-02-28 10:37:49 +11:00
Campbell Barton c6681c65dd Makefile: use BLENDER_BIN variable if passed in
When the default build path isn't used,
it's still handy to be able to run utility commands.
2019-02-28 10:35:38 +11:00
Campbell Barton c702e57b3c Makefile: move help text to string literal
Editing text in @echo commands wasn't convenient.
2019-02-28 10:12:24 +11:00
Luca Rood ade4017293 GNUmakefile: fix deps directory
`uname -p` is unknown on some distros, use posix standard `uname -m`.
2019-02-09 17:00:57 +11:00
Brecht Van Lommel c9df453ce7 Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
Brecht Van Lommel 8e183a83b7 Fix "make update" on macOS/Linux not updating addons to the blender2.8 branch.
This will need to be removed once we merge into master.
2018-10-30 14:43:09 +01:00
Brecht Van Lommel 8f51308dba Build: allow overriding DEPS_BUILD_DIR and DEPS_INSTALL_DIR for make deps. 2018-09-24 15:48:50 +02:00
Campbell Barton 0a23d39b9f Merge branch 'master' into blender2.8 2018-09-13 16:21:56 +10:00
Campbell Barton 99e06af9c8 Cleanup: move 'make help_features' into own file 2018-09-13 16:20:02 +10:00
Campbell Barton a4e4dc1b75 Merge branch 'master' into blender2.8 2018-09-13 15:39:21 +10:00
Campbell Barton ffe5b92325 PyDoc: disable ASAN exit code for doc building
Prevented docs from building on any minor issue when ASAN was enabled.
2018-09-13 15:37:30 +10:00
Campbell Barton 8926aa6f67 Merge branch 'master' into blender2.8 2018-08-21 20:28:28 +10:00
Campbell Barton 45721499b3 Correct recent makefile OSX check 2018-08-21 20:27:36 +10:00
Campbell Barton 15acbbdc1e Merge branch 'master' into blender2.8 2018-08-21 19:25:49 +10:00
Campbell Barton 122ef17ab2 GNUmakefile: correct blender binary for macOS 2018-08-21 19:20:01 +10:00
Aaron Carlisle 12acf1e4f8 Cleanup: Update some links to new wiki 2018-08-13 21:55:30 -04:00
Aaron Carlisle 57e6359920 PyDoc: Remove hack to rename main doc from 'contents' to 'index' 2018-08-13 20:51:33 -04:00
Campbell Barton 5e2804a40b Merge branch 'master' into blender2.8 2018-07-13 18:20:10 +02:00
Campbell Barton 87535dd73d Makefile: add note about environment vars 2018-07-13 18:16:05 +02:00
Dalai Felinto dfd82b18df Merge remote-tracking branch 'origin/master' into blender2.8 2018-04-25 09:31:25 +02:00
Dalai Felinto 5285de16f3 Fix string comparison in GNUMakefile for linux systems 2018-04-25 09:30:55 +02:00
Campbell Barton 24bde1ca43 Add "make icons_geom" convenience target
Generates icons from the blend file in lib.
2018-04-24 12:09:31 +02:00
Brecht Van Lommel 6b3d85fa51 Build: auto detection of libraries built by "make deps" on Linux.
Use the libraries if they exist in ../lib/linux_x86_64 or similar, so
that you can run "make deps && make full" to get a full static build.
Note that install_deps.sh is still the only officially supported way to
build Blender dependencies on Linux, but this may be useful to some.

Differential Revision: https://developer.blender.org/D2980
2018-01-11 22:30:31 +01:00
Campbell Barton 04e8a09662 GNUmakefile: add back 'git pull'
Seems this was removed by accident.
2017-09-29 19:02:20 +10:00
Brecht Van Lommel c10ac1bb5c macOS: officially upgrade to 10.9 libraries from lib/darwin.
This removes a bunch of code that is no longer needed, and running
"make update" will now automatically download the new libraries.

Differential Revision: https://developer.blender.org/D2861
2017-09-28 20:53:06 +02:00
Campbell Barton 05be2a8c45 Cleanup: de-duplicate makefile OS checks 2017-08-10 22:37:35 +10:00
Brecht Van Lommel 3c14f02eac Build: add scripts to build dependencies for Windows and macOS.
Note these are intended for platform maintainers, we do not intend to
support users making their own builds with these. For that precompiled
libraries from lib/ should be used.

Implemented by Martijn Berger, Ray Molenkamp and Brecht Van Lommel.

Differential Revision: https://developer.blender.org/D2753
2017-08-07 17:54:26 +02:00
Campbell Barton b796ce0f26 CMake: Only set CMAKE_BUILD_TYPE_INIT when not set
Convenience makefile now uses CMAKE_BUILD_TYPE_INIT,
this means you can change the build type of an existing build
and it won't be overwritten when running `make`.

Useful if you want to add debug info to a release build for profiling.
2017-06-27 09:50:35 +10:00
Campbell Barton 5be8adf8c0 Makefile: set tab width=4 2017-03-11 20:48:12 +11:00
Campbell Barton 7faf76a618 Cleanup: line length 2016-07-15 01:26:26 +10:00
Campbell Barton 79d69bb9e3 Makefile: Use hidden FORCE target 2016-05-21 05:48:10 +10:00
Brecht Van Lommel d09a372acb Fix T48078: incorrect OS X command for retrieving number of CPUs on in Makefile. 2016-04-09 00:25:18 +02:00
Campbell Barton 236fabcc41 Minor edits to sync make.bat & makefile 2016-01-04 20:42:00 +11:00
Campbell Barton e4d016ce48 Makefile: show build dir when configuring 2015-09-22 00:16:53 +10:00
Campbell Barton 81b37f5e92 CMake: use functions instead of macros
Reduces issues with vars leaking into the parent scope.
2015-06-17 09:38:24 +10:00
Campbell Barton 208a917b73 CMake: note env var 2015-06-14 10:05:03 +10:00
Campbell Barton 424e5be046 Makefile support for using NPROCS as an env var 2015-06-14 08:27:29 +10:00
Campbell Barton f167f434d9 Support alternate python command 2015-06-11 04:14:43 +10:00
Campbell Barton 0737f59f62 tweaks to packman build
remove --asroot arg to makepkg
2015-03-24 07:49:17 +11:00
Campbell Barton 0025d90b98 Cleanup: use tabs 2015-03-21 16:40:43 +11:00
Campbell Barton 93c4ba7b70 Force phony targets to build (even if file exists)
This is a convenience makefile only,
files if they exist by accident shouldn't ever be used.
2014-12-20 02:15:14 +01:00
Campbell Barton 4e4ef13734 CMake: add 'full' to 'make help' 2014-11-14 00:19:53 +01:00
Campbell Barton 4b106ac1c9 Add 'help_features' make target (prints WITH_*** options) 2014-11-13 19:41:33 +01:00
Campbell Barton b1ca5b30cf CMake: add 'make full' target 2014-11-13 19:41:33 +01:00
Campbell Barton 13c5b0d546 Utility script to create release archive
- only include files known to git.
- includes all submodules.
- version extracted from BKE_blender.h for naming.
- MD5 checksum generated.
- 'make tbz' convenience target.

Script by Dan McGrath with own minor edits.
2014-09-16 11:44:00 +10:00
Campbell Barton e5adeed40b Makefile: add 'update' convenience target 2014-09-15 14:11:14 +10:00
Campbell Barton 2dc139cd89 Source Checkers: Include intern/ libs we maintain in spelling checks 2014-07-25 15:17:29 +10:00
Campbell Barton 0eb060c7b4 Move tests into tests/ top-level dir 2014-06-18 22:03:46 +10:00
Jens Verwiebe 75135cfa9b OSX: fix T40413, automatic threads for compile throw wrong output 2014-05-29 11:15:32 +02:00
Campbell Barton 06a05e4dae BSD's was using too many build threads for convenience makefile
D431 from Aaron Peterson
2014-05-27 09:47:11 +10:00
Lawrence D'Oliveiro 49e21f6978 Found another place where nproc can be used
/proc/cpuinfo is a Linux-specific thing. Using GNU [[ http://www.gnu.org/software/coreutils/manual/html_node/nproc-invocation.html | nproc ]] should be more portable.

Reviewers: mont29

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D377
2014-03-02 10:29:40 +01:00
Thomas Dinges 21264f89ac Cycles: Add a cmake config to easily compile Cycles Standalone.
On Linux/Mac OS X, simply type "make cycles" inside the Blender source directory, to get a standalone build of the engine.

Reviewed by: Brecht
Differential Revision: https://developer.blender.org/D228
2014-01-20 20:44:39 +01:00
Campbell Barton 4c9a3a53bd UI Icons: store icons in git as uncompressed pixmaps (D196)
this allows for updating icons without committing a new PNG each time
(which is inefficient with git). The data files are converted into a
PNG at builds time and used just as they were before.
2014-01-14 00:14:03 +11:00
Campbell Barton 64fc94e93f Code Cleanup: osl style 2014-01-06 13:58:33 +11:00
Campbell Barton c3788b60f4 Convenience Makefile: spaces in the build path would fail still. 2013-11-17 21:16:39 +11:00
Campbell Barton 4882cb6f28 convenience makefile: support spaces in paths
also update for new source/tools paths.
2013-11-17 18:54:03 +11:00
Campbell Barton 825b0e8bc4 support for paths with spaces in makefile 2013-11-15 18:59:50 +11:00
Campbell Barton b21b24573d lots of operator descriptions were incorrectly copy/pasted.
update some descriptions, others were removed and operators tagged as internal.

add a script to detect duplicate operator descriptions.
2013-09-30 05:50:41 +00:00
Campbell Barton d90d25ec78 add icons utility make target. 2013-08-27 10:03:37 +00:00
Bastien Montagne df059ac4c0 Fix a mismatch in help message (check_spelling_osl obviously checks OLS, and check_spelling_c, C code! :P ) 2013-05-14 14:37:51 +00:00
Campbell Barton c7e2a31bf2 correct too-big allocation in mesh beautify. 2013-04-01 07:57:33 +00:00
Campbell Barton 68e9fdeb81 code cleanup: comment unused members of bmesh operator slots and some osl style edits. 2012-11-20 14:31:58 +00:00
Campbell Barton cf6994b910 code cleanup: spelling,
also initialize bmesh-bevel settings struct to zero to avoid possible uninitialized memory later.
2012-11-12 07:33:01 +00:00
Campbell Barton fa06aab433 code cleanup: add check spelling osl 2012-10-17 01:53:29 +00:00
Campbell Barton aeda5142ef style cleanup: make OSL follow our C style convention. http://wiki.blender.org/index.php/Dev:Doc/CodeStyle 2012-10-17 01:47:37 +00:00