Merge remote-tracking branch 'blender/blender-v4.1-release' into goo-engine-v4.1-release
This commit is contained in:
@@ -278,3 +278,7 @@ StatementMacros:
|
||||
|
||||
MacroBlockBegin: "^OSL_CLOSURE_STRUCT_BEGIN$"
|
||||
MacroBlockEnd: "^OSL_CLOSURE_STRUCT_END$"
|
||||
|
||||
# Ensure single new line at the end of source files.
|
||||
InsertNewlineAtEOF: True
|
||||
KeepEmptyLinesAtEOF: False
|
||||
|
||||
+10
-1
@@ -59,4 +59,13 @@ trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
max_line_length = 120
|
||||
max_line_length = 120
|
||||
|
||||
# HTML
|
||||
[*.html]
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
max_line_length = 99
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
name: Python API Documentation
|
||||
about: File a bug report for the python API documentation
|
||||
labels:
|
||||
- "Type/Report"
|
||||
- "Status/Needs Triage"
|
||||
- "Priority/Normal"
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
### Instructions
|
||||
Thank you for reporting an issue with Blender's Python API documentation.
|
||||
If you meant to file an issue with the software please create a normal [bug report](https://projects.blender.org/blender/blender/issues/new?template=.gitea%2fissue_template%2fbug.yaml).
|
||||
|
||||
Please add to the description below explain the issue at hand.
|
||||
Use **Report issue on this page** at the bottom of the page with an issue to autofill some information.
|
||||
|
||||
Including details, examples, or suggested fixes are appreated and will help resolve the issue as soon as possible.
|
||||
|
||||
- type: textarea
|
||||
id: body
|
||||
attributes:
|
||||
label: "Description"
|
||||
hide_label: true
|
||||
value: |
|
||||
**Page Information**
|
||||
Blender Version: (example: 4.0, edbf15d3c044, main)
|
||||
[Permanent Link](https://docs.blender.org/api/current/) (Update me to the URL of the page with an issue)
|
||||
|
||||
**Short description of issue**
|
||||
[Please fill out a short description of the issue here]
|
||||
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
### Help the developers
|
||||
|
||||
Bug fixing is important, the developers will handle reports swiftly. For that reason, carefully provide exact steps and a **small and simple Python scipt** if neccesarry to reproduce the problem. You do your half of the work, then we do our half!
|
||||
@@ -9,13 +9,13 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
### Instructions
|
||||
First time reporting? See [tips](https://wiki.blender.org/wiki/Process/Bug_Reports).
|
||||
First time reporting? See [tips](https://developer.blender.org/docs/handbook/bug_reports/making_good_bug_reports/).
|
||||
|
||||
* Use **Help > Report a Bug** in Blender to fill system information and exact Blender version.
|
||||
* Test [daily builds](https://builder.blender.org/) to verify if the issue is already fixed.
|
||||
* Test [previous versions](https://download.blender.org/release/) to find an older working version.
|
||||
* For feature requests, feedback, questions or build issues, see [communication channels](https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests).
|
||||
* Security vulnerabilities should be [reported privately](https://wiki.blender.org/wiki/Process/Vulnerability_Reports).
|
||||
* For feature requests, feedback, questions or build issues, see [communication channels](https://developer.blender.org/docs/handbook/communication/user_feedback/).
|
||||
* Security vulnerabilities should be [reported privately](https://developer.blender.org/docs/handbook/bug_reports/vulnerability_reports/).
|
||||
* If there are multiple bugs, make multiple bug reports.
|
||||
|
||||
- type: textarea
|
||||
|
||||
@@ -6,7 +6,7 @@ body:
|
||||
value: |
|
||||
### Instructions
|
||||
|
||||
Guides to [contributing code](https://wiki.blender.org/index.php/Dev:Doc/Process/Contributing_Code) and effective [code review](https://wiki.blender.org/index.php/Dev:Doc/Tools/Code_Review).
|
||||
Guides to [contributing code](https://developer.blender.org/docs/handbook/contributing/) and effective [code review](https://developer.blender.org/docs/handbook/contributing/pull_requests/).
|
||||
|
||||
By submitting code here, you agree that the code is (compatible with) GNU GPL v2 or later.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This repository is only used as a mirror. Blender development happens on projects.blender.org.
|
||||
|
||||
To get started with contributing code, please see:
|
||||
https://wiki.blender.org/wiki/Process/Contributing_Code
|
||||
https://developer.blender.org/docs/handbook/contributing/
|
||||
|
||||
+1
-1
@@ -18,4 +18,4 @@ closeComment: >
|
||||
used as a mirror. Blender development happens on projects.blender.org.
|
||||
|
||||
To get started contributing code, please read:
|
||||
https://wiki.blender.org/wiki/Process/Contributing_Code
|
||||
https://developer.blender.org/docs/handbook/contributing/
|
||||
|
||||
@@ -56,6 +56,7 @@ waveletNoiseTile.bin
|
||||
# External repositories.
|
||||
/scripts/addons/
|
||||
/scripts/addons_contrib/
|
||||
/tests/benchmarks/
|
||||
|
||||
# Ignore old submodules directories.
|
||||
# Eventually need to get rid of those, but for the first time of transition
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
[submodule "lib/linux_x64"]
|
||||
update = none
|
||||
path = lib/linux_x64
|
||||
url = https://projects.blender.org/blender/lib-linux_x64.git
|
||||
branch = blender-v4.1-release
|
||||
[submodule "lib/macos_arm64"]
|
||||
update = none
|
||||
path = lib/macos_arm64
|
||||
url = https://projects.blender.org/blender/lib-macos_arm64.git
|
||||
branch = blender-v4.1-release
|
||||
[submodule "lib/macos_x64"]
|
||||
update = none
|
||||
path = lib/macos_x64
|
||||
url = https://projects.blender.org/blender/lib-macos_x64.git
|
||||
branch = blender-v4.1-release
|
||||
[submodule "lib/windows_x64"]
|
||||
update = none
|
||||
path = lib/windows_x64
|
||||
url = https://projects.blender.org/blender/lib-windows_x64.git
|
||||
branch = blender-v4.1-release
|
||||
[submodule "release/datafiles/assets"]
|
||||
path = release/datafiles/assets
|
||||
url = https://projects.blender.org/blender/blender-assets.git
|
||||
branch = blender-v4.1-release
|
||||
[submodule "tests/data"]
|
||||
update = none
|
||||
path = tests/data
|
||||
url = https://projects.blender.org/blender/blender-test-data.git
|
||||
branch = blender-v4.1-release
|
||||
@@ -20,10 +20,13 @@
|
||||
# python ./tools/utils/authors_git_gen.py
|
||||
|
||||
# BEGIN individuals section.
|
||||
20kdc <asdd2808@gmail.com>
|
||||
Aaron Carlisle <carlisle.aaron00@gmail.com>
|
||||
Aaron Franke <arnfranke@yahoo.com>
|
||||
Adam Nydahl <Loginer>
|
||||
Adi Sage <adisage.connect@gmail.com>
|
||||
Aditya Y Jeppu <quantimoney>
|
||||
Adrian Bibby Walther <adrianbibbywalther@gmail.com>
|
||||
Adrian Newton <TFS>
|
||||
AgAmemnno <kaz380@hotmail.co.jp>
|
||||
Aidan Davey <ShadowDragon>
|
||||
@@ -48,6 +51,7 @@ Alexander Kuznetsov <kuzsasha@gmail.com>
|
||||
Alexander Pinzon <apinzonf@gmail.com>
|
||||
Alexander Revkov <arevkov>
|
||||
Alexander Romanov <a.romanov@blend4web.com>
|
||||
Alexander Wilms <alexanderwilms@noreply.localhost>
|
||||
Alexandr Kuznetsov <ak3636@nyu.edu>
|
||||
Aleš Jelovčan <frogstomp>
|
||||
Alfredo de Greef <eeshlo@yahoo.com>
|
||||
@@ -63,9 +67,10 @@ Andrea Beconcini <beco>
|
||||
Andrea Weikert <elubie@gmx.net>
|
||||
Andreas Bergmeier <abergmeier>
|
||||
Andrej730 <azhilenkov@gmail.com>
|
||||
Andres Stephens <ondraise15@hotmail.com>
|
||||
Andrew Buttery <axb2035@gmail.com>
|
||||
Andrew Hale <TrumanBlending@gmail.com>
|
||||
Andrew Oates <aoates>
|
||||
Andrew Oates <andrew@andrewoates.com>
|
||||
Andrew Wiggin <ender79bl@gmail.com>
|
||||
Andrew Williams <sobakasu>
|
||||
Andrii Symkin <pembem22>
|
||||
@@ -92,6 +97,7 @@ Arystanbek Dyussenov <arystan.d@gmail.com>
|
||||
Asad-ullah Khan <kh4n>
|
||||
Asher <ThatAsherGuy>
|
||||
Ashley Ruglys <ashley.ruglys@gmail.com>
|
||||
Attila Afra <attila.t.afra@intel.com>
|
||||
Aurel Wildfellner <aurel.w@gmail.com>
|
||||
Aurelien Jarno <aurel32>
|
||||
Azeem Bande-Ali <azeemba>
|
||||
@@ -139,6 +145,7 @@ Christoph Lendenfeld <chris.lenden@gmail.com>
|
||||
Christophe Hery <chery>
|
||||
Christopher Peerman <chris_82>
|
||||
Cian Jinks <cjinks99@gmail.com>
|
||||
Clément Busschaert <clement.busschaert@gmail.com>
|
||||
Clément Foucault <foucault.clem@gmail.com>
|
||||
Cody Winchester <CodyWinch>
|
||||
Colby Klein <shakesoda>
|
||||
@@ -150,6 +157,7 @@ Cyrax <cyrax.iiit@gmail.com>
|
||||
Cédric Paille <cedricp>
|
||||
D. O <Likkez>
|
||||
D.J. Capelis <blender@capelis.dj>
|
||||
Daiki Hashimoto <daisea3e1203@gmail.com>
|
||||
Daisuke Takahashi <noreply@blender.org>
|
||||
Dalai Felinto <dalai@blender.org>
|
||||
Damien Dh <damdhe>
|
||||
@@ -190,6 +198,8 @@ Dontsov Valentin <@blend4web.com>
|
||||
Dorian <BD3D>
|
||||
Doug Hammond <doughammond@hamsterfight.co.uk>
|
||||
Douglas Paul <douglas.w.paul@gmail.com>
|
||||
Dyvine57 <dulana57@gmail.com>
|
||||
ESASHIKA Kaoru <git@pluser.dev>
|
||||
Ed Halley <ed@halley.cc>
|
||||
Edgar Roman Cervantes <redvant>
|
||||
Edmund Kapusniak <edmundmk>
|
||||
@@ -200,12 +210,14 @@ Ejner Fergo <ejnersan@gmail.com>
|
||||
Elia Sarti <vekoon@gmail.com>
|
||||
Emanuel Claesson <emanuel.claesson@gmail.com>
|
||||
Enrico Fracasso <enrico.fracasso@email.it>
|
||||
Enrique-de-la-Calle <encalle@ucm.es>
|
||||
Eric Bickle <ShadowChaser>
|
||||
Eric Cosky <eric_cosky>
|
||||
Erik Abrahamsson <ecke101@gmail.com>
|
||||
Ervin Weber <ervin.weber@gmail.com>
|
||||
Erwin Coumans <blender@erwincoumans.com>
|
||||
Ethan Hall <Ethan1080>
|
||||
Eugene Kuznetsov <eugene.kuznetsov@amd.com>
|
||||
Evan Wilson <EAW>
|
||||
Fabian Schempp <fabianschempp@googlemail.com>
|
||||
Fabrício Luis <ce3po>
|
||||
@@ -314,6 +326,8 @@ Johannes Meng <info@jmeng.de>
|
||||
John Quillan <jquillan>
|
||||
Johnny Matthews <johnny.matthews@gmail.com>
|
||||
Joilnen Leite <joilnen.leite@gmail.com>
|
||||
Jonas Holzman <jonas@holzman.fr>
|
||||
JonasDichelle <jonasdichelle@gmail.com>
|
||||
Jonathan Williamson <jonathan@cgcookie.com>
|
||||
Jorge Bernal <jbernalmartinez@gmail.com>
|
||||
Jorijn de Graaf <bonj@noreply.localhost>
|
||||
@@ -333,10 +347,12 @@ Juanfran Matheu <jfmatheu>
|
||||
Juha Mäki-Kanto <ih5235252@gmail.com>
|
||||
Juho Vepsalainen <bebraw@gmail.com>
|
||||
Julian Eisel <julian@blender.org>
|
||||
Julian Plak <julian.plak@live.nl>
|
||||
Julian Squires <julian@cipht.net>
|
||||
Julien Kaspar <julien@blender.org>
|
||||
Jun Mizutani <jmztn@noreply.localhost>
|
||||
Jun Mizutani <mizutani.jun@nifty.ne.jp>
|
||||
Jung Jaeyun <cube-c>
|
||||
Jure Triglav <juretriglav@gmail.com>
|
||||
Justin Dailey <dail8859@yahoo.com>
|
||||
Justin Jones <jjones780>
|
||||
Jörg Müller <nexyon@gmail.com>
|
||||
@@ -345,13 +361,14 @@ Kai Jægersen <kaio>
|
||||
Karsten Schwenk <macnihilist@gmx.net>
|
||||
Karthik Rangasai Sivaraman <rangasai>
|
||||
Kaspian Jakobsson <kaspian.jakobsson@gmail.com>
|
||||
Kazashi Yoshioka <vnapdv@noreply.localhost>
|
||||
Kazashi Yoshioka <kaz380@hotmail.co.jp>
|
||||
Kdaf <Kdaf>
|
||||
Keir Mierle <mierle@gmail.com>
|
||||
Keith Boshoff <wahooney>
|
||||
Ken Hughes <khughes@pacific.edu>
|
||||
Kenneth Perry <thothonegan>
|
||||
Kent Mein <mein@cs.umn.edu>
|
||||
Kenzie <kenziemac130@noreply.localhost>
|
||||
Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz>
|
||||
Kevin Buhr <buhr>
|
||||
Kevin C. Burke <kevincburke@noreply.localhost>
|
||||
@@ -361,11 +378,11 @@ Kevin Mackay <mackay.ka@gmail.com>
|
||||
Khanh Ha <khanhhh89@gmail.com>
|
||||
Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
|
||||
Konrad Puklicki <puklicki>
|
||||
Koranir <101683475+Koranir@users.noreply.github.com>
|
||||
Kris <Metricity>
|
||||
Krzysztof Recko <yetioszek@gmail.com>
|
||||
Kévin Dietrich <kevin.dietrich@mailoo.org>
|
||||
L. E. Segovia <leonardo.segovia@cs.uns.edu.ar>
|
||||
Laurynas Duburas <laurynas>
|
||||
Lawrence D'Oliveiro <from-blender@geek-central.gen.nz>
|
||||
Leha <leha>
|
||||
Leon Schittek <leon.schittek@gmx.net>
|
||||
@@ -399,6 +416,7 @@ Manuel Castilla <manzanillawork@gmail.com>
|
||||
Marc Chehab <marcchehab@protonmail.ch>
|
||||
Marc Freixas <mfreixas@lsi.upc.edu>
|
||||
Marcelo Demian Gómez <mdemiang>
|
||||
Marcelo Mutzbauer <1xundoredo@gmail.com>
|
||||
Marco <nacioss>
|
||||
Marcos Perez <pistolario>
|
||||
Marino Toscano <marino.toscano@gmail.com>
|
||||
@@ -455,7 +473,7 @@ Mikkel Gjoel <mikkelgjoel>
|
||||
Milan Davidović <milan.davidovic@protonmail.com>
|
||||
Milan Jaros <jar091>
|
||||
Mitchell Stokes <mogurijin@gmail.com>
|
||||
Monique Dewanchand <m.dewanchand@atmind.nl>
|
||||
Monique Dewanchand <mdewanchand@atmind.nl>
|
||||
Moritz Röhrich <ildefons>
|
||||
Morten Mikkelsen <mikkelsen7@gmail.com>
|
||||
Myles Walcott <myles_walcott>
|
||||
@@ -472,6 +490,7 @@ Nick Milios <semaphore>
|
||||
Nick Samarin <nicks1987@bigmir.net>
|
||||
Nicola De Mitri <nicolasap>
|
||||
Nicolas Fauvet <droune2001>
|
||||
Nika Kutsniashvili <nickberckley@gmail.com>
|
||||
Nikhil Shringarpurey <Nikhil.Net>
|
||||
Nikita Sirgienko <nikita.sirgienko@intel.com>
|
||||
Nikolaus Leopold <nikolaus.leopold@gmail.com>
|
||||
@@ -484,9 +503,11 @@ Olivier Jolly <zeograd>
|
||||
Olivier Maury <omaury>
|
||||
Omar Emara <mail@OmarEmara.dev>
|
||||
Ove Murberg Henriksen <sorayasilvermoon@hotmail.com>
|
||||
Pablo Delgado Krämer <private@pablode.com>
|
||||
Pablo Dobarro <pablodp606@gmail.com>
|
||||
Pablo Vazquez <pablo@blender.org>
|
||||
Paolo Acampora <pkrime>
|
||||
Paolo Amadini <paolo.blender.dev@amadzone.org>
|
||||
Pascal Schoen <pascal.schoen@adidas-group.com>
|
||||
Patrick Bender <ichbinkeinreh>
|
||||
Patrick Busch <xylvier@noreply.localhost>
|
||||
@@ -498,6 +519,7 @@ Paul Golter <paulgolter>
|
||||
Paul Melis <paulmelis>
|
||||
PaulKristoffersson <57681017+PaulKristoffersson@users.noreply.github.com>
|
||||
Pawel Franitza <Rongix>
|
||||
Pedro A <povmaniac@noreply.localhost>
|
||||
Pedro Reis <veryprofessionaldodo>
|
||||
Peng Yan <1105012124@qq.com>
|
||||
Petar Dosev <pdosev@gmail.com>
|
||||
@@ -518,17 +540,21 @@ Phoenix Katsch <phoenixkatsch>
|
||||
Pi Lanningham <Quantumplation>
|
||||
Pierluigi Grassi <pierluigi@tukano.it>
|
||||
Pierre Risch <prisch>
|
||||
Pierrick Bouvier <pierrick.bouvier@linaro.org>
|
||||
Piotr Makal <pmakal>
|
||||
Piotr Ostrowski <postrowski>
|
||||
Pratik Borhade <pratikborhade302@gmail.com>
|
||||
Prikshit singh <prikshitsingh79@gmail.com>
|
||||
Quentin Wenger <matpi@protonmail.ch>
|
||||
RUben <KUbo_0>
|
||||
Rahul Chaudhary <RC12>
|
||||
Raimund Klink <raimund58@noreply.localhost>
|
||||
Rajesh Advani <rajeshja>
|
||||
Rajesh Malviya <rajveer0malviya@gmail.com>
|
||||
Ralf Hölzemer <r.hoelzemer@googlemail.com>
|
||||
Ramil Roosileht <Limarest>
|
||||
Rateeb Riyasat <bmollusc>
|
||||
Raul Fernandez <farsthary84@gmail.com>
|
||||
Rawalanche <rawalanche@gmail.com>
|
||||
Ray Molenkamp <github@lazydodo.com>
|
||||
Rebecca Dengate <beckyd>
|
||||
@@ -563,9 +589,11 @@ Scott Petrovic <scottpetrovic@gmail.com>
|
||||
Scott Spadea <scottspadea>
|
||||
Scott Wilson <propersquid>
|
||||
Scurest <scurest>
|
||||
Sean Kim <SeanCTKim@protonmail.com>
|
||||
Sebastian Herholz <sebastian.herholz@intel.com>
|
||||
Sebastian Koenig <sebastiankoenig@posteo.de>
|
||||
Sebastian Parborg <darkdefende@gmail.com>
|
||||
Sebastian Parborg <sebastian@blender.org>
|
||||
SebastianWitt <w.basti@gmx.de>
|
||||
Sebastiano Barrera <bars>
|
||||
Sebastián Barschkis <sebbas@sebbas.org>
|
||||
Sergej Reich <sergej.reich@googlemail.com>
|
||||
@@ -591,6 +619,7 @@ Sonny Campbell <sonny.campbell@unity3d.com>
|
||||
Sriharsha Kotcharlakot <k.venkatsriharsha@gmail.com>
|
||||
Stanislav Blinov <radcapricorn>
|
||||
Stefan Gartner <stefang@aon.at>
|
||||
Stefan Heinz <stefanh@noreply.localhost>
|
||||
Stefan Werner <stefan.werner@intel.com>
|
||||
Stefano Bonicatti <smjert>
|
||||
Stephan Seitz <theHamsta>
|
||||
@@ -599,7 +628,7 @@ Stephen Seo <seodisparate>
|
||||
Stephen Swaney <sswaney@centurytel.net>
|
||||
Stuart Broadfoot <gbroadfoot@hotmail.com>
|
||||
Sukhitha Prabhath Jayathilake <pr.jayathilake@gmail.com>
|
||||
Sun Kim <persun@noreply.localhost>
|
||||
Sun Kim <perplexing.sun@gmail.com>
|
||||
Sv. Lockal <lockalsash@gmail.com>
|
||||
Sybren A. Stüvel <sybren@blender.org>
|
||||
Szymon Ulatowski <szulat>
|
||||
@@ -612,6 +641,7 @@ Thomas Beck <software@plasmasolutions.de>
|
||||
Thomas Dinges <thomas@blender.org>
|
||||
Thomas Lachmann <TL>
|
||||
Thomas Szepe <HG1_public@gmx.net>
|
||||
Thomas Wilshaw <thomaswilshaw@gmail.com>
|
||||
Tiago Chaves <laurelkeys>
|
||||
Tianwei Shen <shentianweipku@gmail.com>
|
||||
Tim Stullich <tstullich>
|
||||
@@ -649,7 +679,7 @@ Vitor Boschi <vitorboschi@gmail.com>
|
||||
Vuk Gardašević <lijenstina>
|
||||
Wael El Oraiby <wael.eloraiby@gmail.com>
|
||||
Walid Shouman <eng.walidshouman@gmail.com>
|
||||
Wannes Malfait <Wannes>
|
||||
Wannes Malfait <wannes.malfait@gmail.com>
|
||||
Wayde Moss <wbmoss_dev@yahoo.com>
|
||||
Weikang Qiu <qiuweikang1999@gmail.com>
|
||||
Weizhen Huang <weizhen@blender.org>
|
||||
@@ -674,19 +704,25 @@ Yonatan Maor <yon.maor@gmail.com>
|
||||
Yuki Hashimoto <hzuika>
|
||||
Yuki Shirakawa <shirakawa>
|
||||
Yuntoko <yuntokon@gmail.com>
|
||||
Z-Map <blendfan@gmail.com>
|
||||
Zev Eisenberg <ZevEisenberg>
|
||||
Zijun Zhou <eary@noreply.localhost>
|
||||
andreas atteneder <atti>
|
||||
ariva00 <ariva00.it@gmail.com>
|
||||
b-init <b-init>
|
||||
bartus <bartus@noreply.localhost>
|
||||
bird_d <bird_d>
|
||||
brunoT <drehuwann@gmail.com>
|
||||
cgtinker <Denys.Hsu@gmail.com>
|
||||
coyo_t <constachugga@gmail.com>
|
||||
dupoxy <dupoxy@noreply.localhost>
|
||||
fiord <hyoga_quasar@yahoo.co.jp>
|
||||
grady <mgradysaunders@gmail.com>
|
||||
himisa <himisa@noreply.localhost>
|
||||
jim man <jimman2003>
|
||||
jon denning <gfxcoder@gmail.com>
|
||||
kiki <charles@skeletalstudios.com>
|
||||
laurynas <laduem@gmail.com>
|
||||
listout <listout@protonmail.com>
|
||||
lolloz98 <lorenzocarpaneto@yahoo.it>
|
||||
luzpaz <luzpaz>
|
||||
|
||||
+132
-65
@@ -42,8 +42,8 @@ if(NOT DEFINED CMAKE_BUILD_TYPE_INIT)
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
# Internal logic caches this variable, avoid showing it by default
|
||||
# since it's easy to accidentally set instead of the build type.
|
||||
mark_as_advanced(CMAKE_BUILD_TYPE_INIT)
|
||||
endif()
|
||||
mark_as_advanced(CMAKE_BUILD_TYPE_INIT)
|
||||
|
||||
# Omit superfluous "Up-to-date" messages.
|
||||
if(NOT DEFINED CMAKE_INSTALL_MESSAGE)
|
||||
@@ -53,15 +53,11 @@ endif()
|
||||
# quiet output for Makefiles, 'make -s' helps too
|
||||
# set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
|
||||
|
||||
# global compile definitions since add_definitions() adds for all.
|
||||
# Global compile definitions since add_definitions() adds for all.
|
||||
# _DEBUG is a Visual Studio define, enabled for all platforms.
|
||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
|
||||
$<$<CONFIG:Debug>:DEBUG;_DEBUG>
|
||||
$<$<CONFIG:Release>:NDEBUG>
|
||||
$<$<CONFIG:MinSizeRel>:NDEBUG>
|
||||
$<$<CONFIG:RelWithDebInfo>:NDEBUG>
|
||||
$<$<CONFIG:Debug>:_DEBUG>
|
||||
)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Set policy
|
||||
|
||||
@@ -99,7 +95,6 @@ endif()
|
||||
|
||||
include(build_files/cmake/macros.cmake)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Initialize Project
|
||||
|
||||
@@ -115,7 +110,7 @@ enable_testing()
|
||||
# -----------------------------------------------------------------------------
|
||||
# Test Compiler Support
|
||||
#
|
||||
# Keep in sync with: https://wiki.blender.org/wiki/Building_Blender
|
||||
# Keep in sync with: https://developer.blender.org/docs/handbook/building_blender/
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
if("${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "11.0.0")
|
||||
@@ -250,7 +245,9 @@ mark_as_advanced(CPACK_OVERRIDE_PACKAGENAME)
|
||||
mark_as_advanced(BUILDINFO_OVERRIDE_DATE)
|
||||
mark_as_advanced(BUILDINFO_OVERRIDE_TIME)
|
||||
|
||||
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16")
|
||||
# CMAKE 3.28.2 has issues with the combination of PCH and unity builds, disable for now.
|
||||
# upstream ticket https://gitlab.kitware.com/cmake/cmake/-/issues/25650
|
||||
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16" AND NOT ${CMAKE_VERSION} VERSION_EQUAL "3.28.2")
|
||||
option(WITH_UNITY_BUILD "\
|
||||
Enable unity build for modules that support it to improve compile times.\n\
|
||||
WARNING: this option allows files to be built without all necessary headers!\n
|
||||
@@ -419,6 +416,10 @@ option(WITH_MATERIALX "Enable MaterialX Support" ON)
|
||||
# Hydra render engine
|
||||
option(WITH_HYDRA "Enable Hydra render engine" ON)
|
||||
|
||||
# RTL Languages, Complex Shaping, OpenType Features
|
||||
option(WITH_FRIBIDI "Enable features relying on fribidi" OFF)
|
||||
option(WITH_HARFBUZZ "Enable features relying on harfbuzz" OFF)
|
||||
|
||||
# 3D format support
|
||||
# Disable opencollada when we don't have precompiled libs
|
||||
option(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" ON)
|
||||
@@ -702,12 +703,7 @@ mark_as_advanced(WITH_DRAW_DEBUG)
|
||||
|
||||
# LLVM
|
||||
option(WITH_LLVM "Use LLVM" OFF)
|
||||
if(APPLE)
|
||||
# We prefer static llvm build on Apple, dyn build possible though.
|
||||
option(LLVM_STATIC "Link with LLVM static libraries" ON)
|
||||
else()
|
||||
option(LLVM_STATIC "Link with LLVM static libraries" OFF)
|
||||
endif()
|
||||
option(LLVM_STATIC "Link with LLVM static libraries" OFF)
|
||||
mark_as_advanced(LLVM_STATIC)
|
||||
option(WITH_CLANG "Use Clang" OFF)
|
||||
|
||||
@@ -729,6 +725,9 @@ mark_as_advanced(WITH_CXX_GUARDEDALLOC)
|
||||
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" ON)
|
||||
mark_as_advanced(WITH_ASSERT_ABORT)
|
||||
|
||||
option(WITH_ASSERT_RELEASE "Build with asserts enabled even for non-debug configurations" OFF)
|
||||
mark_as_advanced(WITH_ASSERT_RELEASE)
|
||||
|
||||
if((UNIX AND NOT APPLE) OR (CMAKE_GENERATOR MATCHES "^Visual Studio.+"))
|
||||
option(WITH_CLANG_TIDY "\
|
||||
Use Clang Tidy to analyze the source code \
|
||||
@@ -758,8 +757,9 @@ endif()
|
||||
|
||||
# Unit testing
|
||||
option(WITH_GTESTS "Enable GTest unit testing" OFF)
|
||||
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
|
||||
option(WITH_OPENGL_DRAW_TESTS "Enable OpenGL UI drawing related unit testing (Experimental)" OFF)
|
||||
option(WITH_GPU_RENDER_TESTS "Enable GPU render related unit testing (EEVEE, Workbench and Grease Pencil)" OFF)
|
||||
option(WITH_GPU_RENDER_TESTS_SILENT "Run GPU render tests silently (finished tests will pass). Generated report will show failing tests" ON)
|
||||
option(WITH_GPU_DRAW_TESTS "Enable GPU drawing related unit testing (GPU backends and draw manager)" OFF)
|
||||
option(WITH_COMPOSITOR_REALTIME_TESTS "Enable regression testing for realtime compositor" OFF)
|
||||
if(UNIX AND NOT (APPLE OR HAIKU))
|
||||
option(WITH_UI_TESTS "\
|
||||
@@ -773,6 +773,19 @@ else()
|
||||
set(WITH_UI_TESTS OFF)
|
||||
endif()
|
||||
|
||||
# Enabled by default for typical use cases to speed up development cycles. However, when looking
|
||||
# into threading or memory related issues (in dependency graph, out-of-bounds, etc) forcing single
|
||||
# test per Blender instance could give much better clues about the root of the problem.
|
||||
option(WITH_TESTS_BATCHED "Run multiple tests in a single Blender invocation, for faster test execution" ON)
|
||||
mark_as_advanced(WITH_TESTS_BATCHED)
|
||||
|
||||
option(WITH_TESTS_SINGLE_BINARY "\
|
||||
Link GTest tests into a single binary. \
|
||||
For faster overall build and less disk space, but slower individual test build"
|
||||
ON
|
||||
)
|
||||
mark_as_advanced(WITH_TESTS_SINGLE_BINARY)
|
||||
|
||||
# NOTE: All callers of this must add `TEST_PYTHON_EXE_EXTRA_ARGS` before any other arguments.
|
||||
set(TEST_PYTHON_EXE "" CACHE PATH "Python executable to run unit tests")
|
||||
mark_as_advanced(TEST_PYTHON_EXE)
|
||||
@@ -1010,7 +1023,7 @@ if("${CMAKE_GENERATOR}" MATCHES "Ninja")
|
||||
option(WITH_NINJA_POOL_JOBS "\
|
||||
Enable Ninja pools of jobs, to try to ease building on machines with 16GB of RAM or less \
|
||||
(if not yet defined, will try to set best values based on detected machine specifications)."
|
||||
OFF
|
||||
ON
|
||||
)
|
||||
mark_as_advanced(WITH_NINJA_POOL_JOBS)
|
||||
endif()
|
||||
@@ -1138,14 +1151,7 @@ set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_CYCLES_OSL OFF)
|
||||
# Hydra requires USD.
|
||||
set_and_warn_dependency(WITH_USD WITH_HYDRA OFF)
|
||||
|
||||
# auto enable openimageio for cycles
|
||||
if(WITH_CYCLES)
|
||||
# auto enable llvm for cycles_osl
|
||||
if(WITH_CYCLES_OSL)
|
||||
set(WITH_LLVM ON CACHE BOOL "" FORCE)
|
||||
set(WITH_CLANG ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
else()
|
||||
if(NOT WITH_CYCLES)
|
||||
set(WITH_CYCLES_OSL OFF)
|
||||
endif()
|
||||
|
||||
@@ -1219,10 +1225,10 @@ if(WITH_PYTHON)
|
||||
# Do this before main 'platform_*' checks,
|
||||
# because UNIX will search for the old Python paths which may not exist.
|
||||
# giving errors about missing paths before this case is met.
|
||||
if(DEFINED PYTHON_VERSION AND "${PYTHON_VERSION}" VERSION_LESS "3.10")
|
||||
if(DEFINED PYTHON_VERSION AND "${PYTHON_VERSION}" VERSION_LESS "3.11")
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"At least Python 3.10 is required to build, but found Python ${PYTHON_VERSION}"
|
||||
"At least Python 3.11 is required to build, but found Python ${PYTHON_VERSION}"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -1294,6 +1300,25 @@ if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
|
||||
string(REPLACE " " ";" _list_COMPILER_ASAN_CFLAGS ${COMPILER_ASAN_CFLAGS})
|
||||
set(_is_CONFIG_DEBUG "$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>")
|
||||
add_compile_options("$<${_is_CONFIG_DEBUG}:${_list_COMPILER_ASAN_CFLAGS}>")
|
||||
|
||||
# Skip generation of the unwind tables, as they might require a lot of space when sanitizers
|
||||
# are enabled and not fit into the .eh_frame section. Disabling the unwind tables might have
|
||||
# side effects on code which does frame walking, such as
|
||||
# - backtrace()
|
||||
# - __attribute__((__cleanup__(f)))
|
||||
# - __builtin_return_address(n), for n > 0
|
||||
# - pthread_cleanup_push when it is implemented using __attribute__((__cleanup__(f)))
|
||||
# It should not have affect on debugging, since it uses -g flag which generates debugging
|
||||
# tables in the .debug_frame section.
|
||||
# At the time of adding these flags calling backtrace() from C code on Apple M2 did not
|
||||
# affect on the printed backtrace, and exception handling was correct as well.
|
||||
#
|
||||
# Related discussion:
|
||||
# https://stackoverflow.com/questions/26300819/why-gcc-compiled-c-program-needs-eh-frame-section
|
||||
add_compile_options("$<${_is_CONFIG_DEBUG}:-fno-unwind-tables>")
|
||||
add_compile_options("$<${_is_CONFIG_DEBUG}:-fno-asynchronous-unwind-tables>")
|
||||
|
||||
add_compile_options("$<${_is_CONFIG_DEBUG}:-fno-omit-frame-pointer>")
|
||||
add_link_options("$<${_is_CONFIG_DEBUG}:-fno-omit-frame-pointer;-fsanitize=address>")
|
||||
unset(_list_COMPILER_ASAN_CFLAGS)
|
||||
unset(_is_CONFIG_DEBUG)
|
||||
@@ -1345,18 +1370,6 @@ if(NOT WITH_FFTW3 AND WITH_MOD_OCEANSIM)
|
||||
message(FATAL_ERROR "WITH_MOD_OCEANSIM requires WITH_FFTW3 to be ON")
|
||||
endif()
|
||||
|
||||
if(WITH_CYCLES)
|
||||
if(WITH_CYCLES_OSL)
|
||||
if(NOT WITH_LLVM)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"Cycles OSL requires WITH_LLVM, the library may not have been found. "
|
||||
"Configure LLVM or disable WITH_CYCLES_OSL"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_INTERNATIONAL)
|
||||
if(NOT WITH_BOOST)
|
||||
message(
|
||||
@@ -1511,8 +1524,10 @@ if(WITH_OPENMP)
|
||||
if(NOT WITH_OPENMP_STATIC)
|
||||
string(APPEND CMAKE_C_FLAGS " ${OpenMP_C_FLAGS}")
|
||||
string(APPEND CMAKE_CXX_FLAGS " ${OpenMP_CXX_FLAGS}")
|
||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " ${OpenMP_LINKER_FLAGS}")
|
||||
string(APPEND CMAKE_MODULE_LINKER_FLAGS " ${OpenMP_LINKER_FLAGS}")
|
||||
if(DEFINED OpenMP_LINKER_FLAGS)
|
||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " ${OpenMP_LINKER_FLAGS}")
|
||||
string(APPEND CMAKE_MODULE_LINKER_FLAGS " ${OpenMP_LINKER_FLAGS}")
|
||||
endif()
|
||||
else()
|
||||
# Typically avoid adding flags as defines but we can't
|
||||
# pass OpenMP flags to the linker for static builds, meaning
|
||||
@@ -1615,22 +1630,30 @@ if("${CMAKE_GENERATOR}" MATCHES "Ninja" AND WITH_NINJA_POOL_JOBS)
|
||||
# Note: this gives mem in MB.
|
||||
cmake_host_system_information(RESULT _TOT_MEM QUERY TOTAL_PHYSICAL_MEMORY)
|
||||
|
||||
# Heuristics: the more cores we have, the more free memory we have to keep
|
||||
# for the non-heavy tasks too.
|
||||
if(${_TOT_MEM} LESS 8000 AND ${_NUM_CORES} GREATER 2)
|
||||
set(_compile_heavy_jobs "1")
|
||||
elseif(${_TOT_MEM} LESS 16000 AND ${_NUM_CORES} GREATER 4)
|
||||
set(_compile_heavy_jobs "2")
|
||||
elseif(${_TOT_MEM} LESS 24000 AND ${_NUM_CORES} GREATER 8)
|
||||
set(_compile_heavy_jobs "3")
|
||||
elseif(${_TOT_MEM} LESS 32000 AND ${_NUM_CORES} GREATER 16)
|
||||
set(_compile_heavy_jobs "4")
|
||||
elseif(${_TOT_MEM} LESS 64000 AND ${_NUM_CORES} GREATER 32)
|
||||
set(_compile_heavy_jobs "8")
|
||||
else()
|
||||
set(_compile_heavy_jobs "")
|
||||
# Heuristics: Assume 8Gb of RAM is needed per heavy compile job.
|
||||
# Typical RAM peak usage of these is actually less than 3GB currently,
|
||||
# but this also accounts for the part of the physical RAM being used by other unrelated
|
||||
# processes on the system, and the part being used by the 'regular' compile and linking jobs.
|
||||
#
|
||||
# Also always cap heavy jobs amount to `number of available threads - 1`, to ensure that even if
|
||||
# there would be enough RAM, the machine never ends up handling only heavy jobs at some point.
|
||||
# This can have annoying sides effects, like lack of output in the console for several minutes,
|
||||
# which can lead to a wrong detection of 'unresponsive' state by the buildbots e.g.
|
||||
#
|
||||
# Currently, these settings applied to a 64GB/16threads linux machine will use, for a full build:
|
||||
# - release build:
|
||||
# * RAM: typically less than 20%, with some peaks at 25%.
|
||||
# * CPU: over 90% of usage on average over the whole build time.
|
||||
# - debug with ASAN build:
|
||||
# * RAM: typically less than 40%, with some peaks at 50%.
|
||||
# * CPU: over 90% of usage on average over the whole build time.
|
||||
math(EXPR _compile_heavy_jobs "${_TOT_MEM} / 8000")
|
||||
math(EXPR _compile_heavy_jobs_max "${_NUM_CORES} - 1")
|
||||
if(${_compile_heavy_jobs} GREATER ${_compile_heavy_jobs_max})
|
||||
set(_compile_heavy_jobs ${_compile_heavy_jobs_max})
|
||||
elseif(${_compile_heavy_jobs} LESS 1)
|
||||
set(_compile_heavy_jobs 1)
|
||||
endif()
|
||||
|
||||
set(NINJA_MAX_NUM_PARALLEL_COMPILE_HEAVY_JOBS "${_compile_heavy_jobs}" CACHE STRING "\
|
||||
Define the maximum number of concurrent heavy compilation jobs, for ninja build system \
|
||||
(used for some targets which cpp files can take several GB each during compilation)."
|
||||
@@ -1638,18 +1661,33 @@ Define the maximum number of concurrent heavy compilation jobs, for ninja build
|
||||
)
|
||||
mark_as_advanced(NINJA_MAX_NUM_PARALLEL_COMPILE_HEAVY_JOBS)
|
||||
set(_compile_heavy_jobs)
|
||||
set(_compile_heavy_jobs_max)
|
||||
|
||||
# Only set regular compile jobs if we set heavy jobs,
|
||||
# otherwise default (using all cores) if fine.
|
||||
if(NINJA_MAX_NUM_PARALLEL_COMPILE_HEAVY_JOBS)
|
||||
math(EXPR _compile_jobs "${_NUM_CORES} - 1")
|
||||
# Heuristics: Assume 2Gb of RAM is needed per heavy compile job.
|
||||
# Typical RAM peak usage of these is actually way less than 1GB usually,
|
||||
# but this also accounts for the part of the physical RAM being used by other unrelated
|
||||
# processes on the system, and the part being used by the 'heavy' compile and linking jobs.
|
||||
#
|
||||
# If there are 'enough' cores available, cap the maximum number of regular jobs to
|
||||
# `number of cores - 1`, otherwise allow using all cores if there is enough RAM available.
|
||||
# This allows to ensure that the heavy jobs won't get starved by too many normal jobs,
|
||||
# since the former usually take a long time to process.
|
||||
math(EXPR _compile_jobs "${_TOT_MEM} / 2000")
|
||||
if(${_NUM_CORES} GREATER 3)
|
||||
math(EXPR _compile_jobs_max "${_NUM_CORES} - 1")
|
||||
else()
|
||||
set(_compile_jobs "")
|
||||
set(_compile_jobs_max ${_NUM_CORES})
|
||||
endif()
|
||||
if(${_compile_jobs} GREATER ${_compile_jobs_max})
|
||||
set(_compile_jobs ${_compile_jobs_max})
|
||||
elseif(${_compile_jobs} LESS 1)
|
||||
set(_compile_jobs 1)
|
||||
endif()
|
||||
set(NINJA_MAX_NUM_PARALLEL_COMPILE_JOBS "${_compile_jobs}" CACHE STRING
|
||||
"Define the maximum number of concurrent compilation jobs, for ninja build system." FORCE)
|
||||
mark_as_advanced(NINJA_MAX_NUM_PARALLEL_COMPILE_JOBS)
|
||||
set(_compile_jobs)
|
||||
set(_compile_jobs_max)
|
||||
|
||||
# In practice, even when there is RAM available,
|
||||
# this proves to be quicker than running in parallel (due to slow disks accesses).
|
||||
@@ -1776,13 +1814,21 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
||||
CXX_WARN_NO_SUGGEST_OVERRIDE -Wno-suggest-override
|
||||
CXX_WARN_UNINITIALIZED -Wuninitialized
|
||||
|
||||
# NOTE(@ideasman42): In GCC 13.2.1 on Linux this causes internal compiler errors.
|
||||
# The crashes can be resolved by disabling the flag per module (but not via pragmas).
|
||||
# However this also causes a type mix-up FreeStyle (Blender & FreeStyle's `Curve`)
|
||||
# so it seems to impact GCC's the internal state enough that it's too risky to enable.
|
||||
# When this is resolved the check can be enabled for fixed GCC versions.
|
||||
#
|
||||
# Prevents linking errors with MSVC.
|
||||
# `CXX_WARN_MISMATCHED_TAGS -Wmismatched-tags`
|
||||
|
||||
# Useful but too many false positives and inconvenient to suppress each occurrence.
|
||||
CXX_WARN_NO_STRINGOP_OVERREAD -Wno-stringop-overread
|
||||
CXX_WARN_NO_STRINGOP_OVERFLOW -Wno-stringop-overflow
|
||||
|
||||
# Use `[[fallthrough]]` or `ATTR_FALLTHROUGH` macro to suppress.
|
||||
CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5
|
||||
|
||||
)
|
||||
|
||||
# causes too many warnings
|
||||
@@ -1885,6 +1931,9 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
CXX_WARN_UNDEF_PREFIX -Wundef-prefix
|
||||
CXX_WARN_UNUSED_PARAMETER -Wunused-parameter
|
||||
|
||||
# Prevents linking errors with MSVC.
|
||||
CXX_WARN_MISMATCHED_TAGS -Wmismatched-tags
|
||||
|
||||
# Gives too many unfixable warnings.
|
||||
# `C_WARN_UNUSED_MACROS -Wunused-macros`
|
||||
# `CXX_WARN_UNUSED_MACROS -Wunused-macros`
|
||||
@@ -2155,9 +2204,27 @@ if(WITH_ASSERT_ABORT)
|
||||
add_definitions(-DWITH_ASSERT_ABORT)
|
||||
endif()
|
||||
|
||||
# NDEBUG is the standard C define to disable asserts.
|
||||
if(WITH_ASSERT_RELEASE)
|
||||
# CMake seemingly be setting the NDEBUG flag on its own already on some configurations
|
||||
# therefore we need to remove the flags if they happen to be set.
|
||||
remove_cc_flag("-DNDEBUG") # GCC/CLang
|
||||
remove_cc_flag("/DNDEBUG") # MSVC
|
||||
else()
|
||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
|
||||
$<$<CONFIG:Release>:NDEBUG>
|
||||
$<$<CONFIG:MinSizeRel>:NDEBUG>
|
||||
$<$<CONFIG:RelWithDebInfo>:NDEBUG>
|
||||
)
|
||||
endif()
|
||||
|
||||
# message(STATUS "Using CFLAGS: ${CMAKE_C_FLAGS}")
|
||||
# message(STATUS "Using CXXFLAGS: ${CMAKE_CXX_FLAGS}")
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Testing Functions
|
||||
|
||||
include(build_files/cmake/testing.cmake)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Add Sub-Directories
|
||||
|
||||
+52
-40
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# This Makefile does an out-of-source CMake build in ../build_`OS`_`CPU`
|
||||
# This Makefile does an out-of-source CMake build in ../build_`OS`
|
||||
# eg:
|
||||
# ../build_linux_i386
|
||||
# This is for users who like to configure & build blender with a single command.
|
||||
@@ -35,7 +35,7 @@ Other Convenience Targets
|
||||
* deps: Build library dependencies (intended only for platform maintainers).
|
||||
|
||||
The existence of locally build dependencies overrides the pre-built dependencies from subversion.
|
||||
These must be manually removed from '../lib/' to go back to using the pre-compiled libraries.
|
||||
These must be manually removed from 'lib/' to go back to using the pre-compiled libraries.
|
||||
|
||||
Project Files
|
||||
Generate project files for development environments.
|
||||
@@ -73,10 +73,10 @@ Static Source Code Checking
|
||||
|
||||
Documentation Checking
|
||||
|
||||
* check_wiki_file_structure:
|
||||
Check the WIKI documentation for the source-tree's file structure
|
||||
* check_docs_file_structure:
|
||||
Check the documentation for the source-tree's file structure
|
||||
matches Blender's source-code.
|
||||
See: https://wiki.blender.org/wiki/Source/File_Structure
|
||||
See: https://developer.blender.org/docs/features/code_layout/
|
||||
|
||||
Spell Checkers
|
||||
This runs the spell checker from the developer tools repositor.
|
||||
@@ -165,6 +165,16 @@ OS:=$(shell uname -s)
|
||||
OS_NCASE:=$(shell uname -s | tr '[A-Z]' '[a-z]')
|
||||
CPU:=$(shell uname -m)
|
||||
|
||||
# Use our OS and CPU architecture naming conventions.
|
||||
ifeq ($(CPU),x86_64)
|
||||
CPU:=x64
|
||||
endif
|
||||
ifeq ($(OS_NCASE),darwin)
|
||||
OS_LIBDIR:=macos
|
||||
else
|
||||
OS_LIBDIR:=$(OS_NCASE)
|
||||
endif
|
||||
|
||||
|
||||
# Source and Build DIR's
|
||||
BLENDER_DIR:=$(shell pwd -P)
|
||||
@@ -186,49 +196,55 @@ ifndef DEPS_BUILD_DIR
|
||||
endif
|
||||
|
||||
ifndef DEPS_INSTALL_DIR
|
||||
DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
|
||||
DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_LIBDIR)_$(CPU)
|
||||
endif
|
||||
|
||||
# Add processor type to directory name, except for darwin x86_64
|
||||
# which by convention does not have it.
|
||||
ifeq ($(OS_NCASE),darwin)
|
||||
ifneq ($(CPU),x86_64)
|
||||
DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(CPU)
|
||||
# Set the LIBDIR, an empty string when not found.
|
||||
LIBDIR:=$(wildcard $(BLENDER_DIR)/lib/${OS_LIBDIR}_${CPU})
|
||||
ifeq (, $(LIBDIR))
|
||||
LIBDIR:=$(wildcard $(BLENDER_DIR)/lib/${OS_LIBDIR})
|
||||
endif
|
||||
|
||||
# Find the newest Python version bundled in `LIBDIR`.
|
||||
PY_LIB_VERSION:=3.15
|
||||
ifeq (, $(wildcard $(LIBDIR)/python/bin/python$(PY_LIB_VERSION)))
|
||||
PY_LIB_VERSION:=3.14
|
||||
ifeq (, $(wildcard $(LIBDIR)/python/bin/python$(PY_LIB_VERSION)))
|
||||
PY_LIB_VERSION:=3.13
|
||||
ifeq (, $(wildcard $(LIBDIR)/python/bin/python$(PY_LIB_VERSION)))
|
||||
PY_LIB_VERSION:=3.12
|
||||
ifeq (, $(wildcard $(LIBDIR)/python/bin/python$(PY_LIB_VERSION)))
|
||||
PY_LIB_VERSION:=3.11
|
||||
ifeq (, $(wildcard $(LIBDIR)/python/bin/python$(PY_LIB_VERSION)))
|
||||
PY_LIB_VERSION:=3.10
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(CPU)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Allow to use alternative binary (pypy3, etc)
|
||||
ifndef PYTHON
|
||||
PYTHON:=python3
|
||||
endif
|
||||
|
||||
# For macOS python3 is not installed by default, so fallback to python binary
|
||||
# in libraries, or python 2 for running make update to get it.
|
||||
ifeq ($(OS_NCASE),darwin)
|
||||
ifeq (, $(shell command -v $(PYTHON)))
|
||||
PYTHON:=$(DEPS_INSTALL_DIR)/python/bin/python3.10
|
||||
# If not overriden, first try using Python from LIBDIR.
|
||||
PYTHON:=$(LIBDIR)/python/bin/python$(PY_LIB_VERSION)
|
||||
ifeq (, $(wildcard $(PYTHON)))
|
||||
# If not available, use system python3 or python command.
|
||||
PYTHON:=python3
|
||||
ifeq (, $(shell command -v $(PYTHON)))
|
||||
PYTHON:=python
|
||||
endif
|
||||
else
|
||||
# Don't generate __pycache__ files in lib folder, they
|
||||
# can interfere with updates.
|
||||
PYTHON:=$(PYTHON) -B
|
||||
endif
|
||||
endif
|
||||
|
||||
# Set the LIBDIR, an empty string when not found.
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_${CPU})
|
||||
ifeq (, $(LIBDIR))
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_${CPU}_glibc_228)
|
||||
endif
|
||||
ifeq (, $(LIBDIR))
|
||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE})
|
||||
endif
|
||||
|
||||
# Use the autopep8 module in ../lib/ (which can be executed via Python directly).
|
||||
# Otherwise the "autopep8" command can be used.
|
||||
ifndef AUTOPEP8
|
||||
ifneq (, $(LIBDIR))
|
||||
AUTOPEP8:=$(wildcard $(LIBDIR)/python/lib/python3.10/site-packages/autopep8.py)
|
||||
AUTOPEP8:=$(wildcard $(LIBDIR)/python/lib/python$(PY_LIB_VERSION)/site-packages/autopep8.py)
|
||||
endif
|
||||
ifeq (, $(AUTOPEP8))
|
||||
AUTOPEP8:=autopep8
|
||||
@@ -484,9 +500,9 @@ check_clang_array: .FORCE
|
||||
check_mypy: .FORCE
|
||||
@$(PYTHON) "$(BLENDER_DIR)/tools/check_source/check_mypy.py"
|
||||
|
||||
check_wiki_file_structure: .FORCE
|
||||
check_docs_file_structure: .FORCE
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/tools/check_wiki/check_wiki_file_structure.py"
|
||||
"$(BLENDER_DIR)/tools/check_docs/check_docs_code_layout.py"
|
||||
|
||||
check_spelling_py: .FORCE
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
@@ -551,14 +567,10 @@ source_archive_complete: .FORCE
|
||||
# This assumes CMake is still using a default `PACKAGE_DIR` variable:
|
||||
@$(PYTHON) ./build_files/utils/make_source_archive.py --include-packages "$(BUILD_DIR)/source_archive/packages"
|
||||
|
||||
INKSCAPE_BIN?="inkscape"
|
||||
icons: .FORCE
|
||||
@BLENDER_BIN=$(BLENDER_BIN) INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
||||
"$(BLENDER_DIR)/release/datafiles/blender_icons_update.py"
|
||||
@INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
||||
"$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
|
||||
@INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
||||
"$(BLENDER_DIR)/release/datafiles/alert_icons_update.py"
|
||||
@BLENDER_BIN=$(BLENDER_BIN) "$(BLENDER_DIR)/release/datafiles/blender_icons_update.py"
|
||||
"$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
|
||||
"$(BLENDER_DIR)/release/datafiles/alert_icons_update.py"
|
||||
|
||||
icons_geom: .FORCE
|
||||
@BLENDER_BIN=$(BLENDER_BIN) \
|
||||
|
||||
@@ -42,10 +42,10 @@ Project Pages
|
||||
Development
|
||||
-----------
|
||||
|
||||
- [Build Instructions](https://wiki.blender.org/wiki/Building_Blender)
|
||||
- [Build Instructions](https://developer.blender.org/docs/handbook/building_blender/)
|
||||
- [Code Review & Bug Tracker](https://projects.blender.org)
|
||||
- [Developer Forum](https://devtalk.blender.org)
|
||||
- [Developer Documentation](https://wiki.blender.org)
|
||||
- [Developer Documentation](https://developer.blender.org/docs/)
|
||||
|
||||
|
||||
License
|
||||
|
||||
@@ -26,12 +26,15 @@
|
||||
#
|
||||
##################################################################################################
|
||||
|
||||
project("BlenderDependencies")
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project("BlenderDependencies")
|
||||
if(POLICY CMP0135)
|
||||
cmake_policy(SET CMP0135 NEW) # CMake 3.24+ Set the date/time for extracted files to time of extraction
|
||||
endif()
|
||||
include(ExternalProject)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/Modules")
|
||||
|
||||
include(cmake/check_software.cmake)
|
||||
include(cmake/options.cmake)
|
||||
# `versions.cmake` needs to be included after `options.cmake`
|
||||
@@ -40,6 +43,7 @@ include(cmake/versions.cmake)
|
||||
include(cmake/boost_build_options.cmake)
|
||||
include(cmake/download.cmake)
|
||||
include(cmake/macros.cmake)
|
||||
include(cmake/check_compilers.cmake)
|
||||
|
||||
if(ENABLE_MSYS2)
|
||||
include(cmake/setup_msys2.cmake)
|
||||
@@ -54,12 +58,12 @@ include(cmake/png.cmake)
|
||||
include(cmake/jpeg.cmake)
|
||||
include(cmake/blosc.cmake)
|
||||
include(cmake/pthreads.cmake)
|
||||
include(cmake/deflate.cmake)
|
||||
include(cmake/imath.cmake)
|
||||
include(cmake/openexr.cmake)
|
||||
include(cmake/brotli.cmake)
|
||||
include(cmake/freetype.cmake)
|
||||
include(cmake/epoxy.cmake)
|
||||
include(cmake/freeglut.cmake)
|
||||
include(cmake/alembic.cmake)
|
||||
include(cmake/opensubdiv.cmake)
|
||||
include(cmake/sdl.cmake)
|
||||
@@ -105,7 +109,6 @@ if(NOT APPLE)
|
||||
endif()
|
||||
endif()
|
||||
include(cmake/ispc.cmake)
|
||||
include(cmake/openimagedenoise.cmake)
|
||||
# Embree needs to be included after dpcpp as it uses it for compiling with GPU support
|
||||
include(cmake/embree.cmake)
|
||||
include(cmake/openpgl.cmake)
|
||||
@@ -133,6 +136,7 @@ if(NOT WIN32 OR ENABLE_MSYS2)
|
||||
include(cmake/gmp.cmake)
|
||||
include(cmake/openjpeg.cmake)
|
||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||
include(cmake/openimagedenoise.cmake)
|
||||
include(cmake/lame.cmake)
|
||||
include(cmake/ogg.cmake)
|
||||
include(cmake/vorbis.cmake)
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# SPDX-FileCopyrightText: 2019-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Check against installed versions.
|
||||
|
||||
message(STATUS "Found C Compiler: ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(NOT CMAKE_COMPILER_IS_GNUCC OR NOT (CMAKE_C_COMPILER_VERSION MATCHES ${RELEASE_GCC_VERSION}))
|
||||
message(STATUS " NOTE: Official releases uses GCC ${RELEASE_GCC_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message(STATUS "Found C++ Compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(NOT CMAKE_COMPILER_IS_GNUCC OR NOT (CMAKE_CXX_COMPILER_VERSION MATCHES ${RELEASE_GCC_VERSION}))
|
||||
message(STATUS " NOTE: Official releases uses GCC ${RELEASE_GCC_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT APPLE)
|
||||
include(CheckLanguage)
|
||||
check_language(CUDA)
|
||||
if (NOT CMAKE_CUDA_COMPILER)
|
||||
message(STATUS "Missing CUDA compiler")
|
||||
else()
|
||||
enable_language(CUDA)
|
||||
message(STATUS "Found CUDA Compiler: ${CMAKE_CUDA_COMPILER_ID} ${CMAKE_CUDA_COMPILER_VERSION}")
|
||||
if(NOT CMAKE_CUDA_COMPILER_VERSION MATCHES ${RELEASE_CUDA_VERSION})
|
||||
message(STATUS " NOTE: Official releases uses CUDA ${RELEASE_CUDA_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
unset(HIP_VERSION)
|
||||
find_package(HIP QUIET)
|
||||
if (NOT HIP_FOUND)
|
||||
message(STATUS "Missing HIP compiler")
|
||||
else()
|
||||
message(STATUS "Found HIP Compiler: ${HIP_HIPCC_EXECUTABLE} ${HIP_VERSION}")
|
||||
if(NOT HIP_VERSION MATCHES ${RELEASE_HIP_VERSION})
|
||||
message(STATUS " NOTE: Official releases uses HIP ${RELEASE_HIP_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -25,9 +25,14 @@ vendor,product,version,cve_number,remarks,comment
|
||||
@TIFF_ID@,CVE-2022-3599,Ignored,issue in tiff command line tool not used by blender
|
||||
@TIFF_ID@,CVE-2022-3626,Ignored,issue in tiff command line tool not used by blender
|
||||
@TIFF_ID@,CVE-2022-3627,Ignored,issue in tiff command line tool not used by blender
|
||||
@TIFF_ID@,CVE-2023-40745,Ignored,issue in tiff command line tool not used by blender
|
||||
@TIFF_ID@,CVE-2023-41175,Ignored,issue in tiff command line tool not used by blender
|
||||
@XML2_ID@,CVE-2016-3709,Ignored,not affecting blender and not considered a security issue upstream
|
||||
@XML2_ID@,CVE-2023-39615,Ignored,not affecting blender and not considered a security issue upstream
|
||||
@XML2_ID@,CVE-2020-7595,Ignored,already fixed in the libxml2 version used
|
||||
@GMP_ID@,CVE-2021-43618,Mitigated,patched using upstream commit 561a9c25298e
|
||||
@SQLITE_ID@,CVE-2022-35737,Ignored,only affects SQLITE_ENABLE_STAT4 compile option not used by blender or python
|
||||
@SQLITE_ID@,CVE-2023-7104,Ignored,does not affect blender use of sqlite
|
||||
@SQLITE_ID@,CVE-2024-0232,Ignored,does not affect blender use of sqlite
|
||||
@ZLIB_ID@,CVE-2023-45853,Ignored,only affects minizip not used by blender
|
||||
@SBOMCONTENTS@
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
||||
set(DEFLATE_EXTRA_ARGS
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_deflate
|
||||
URL file://${PACKAGE_DIR}/${DEFLATE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${DEFLATE_HASH_TYPE}=${DEFLATE_HASH}
|
||||
PREFIX ${BUILD_DIR}/deflate
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/deflate ${DEFAULT_CMAKE_FLAGS} ${DEFLATE_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/deflate
|
||||
)
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
## Update and uncomment this in the release branch
|
||||
# set(BLENDER_VERSION 3.1)
|
||||
set(BLENDER_VERSION 4.1)
|
||||
|
||||
function(download_source dep)
|
||||
set(TARGET_FILE ${${dep}_FILE})
|
||||
@@ -12,9 +12,9 @@ function(download_source dep)
|
||||
if(PACKAGE_USE_UPSTREAM_SOURCES)
|
||||
set(TARGET_URI ${${dep}_URI})
|
||||
elseif(BLENDER_VERSION)
|
||||
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/tags/blender-${BLENDER_VERSION}-release/lib/packages/${TARGET_FILE})
|
||||
set(TARGET_URI https://projects.blender.org/blender/lib-source/media/branch/blender-v${BLENDER_VERSION}-release/${TARGET_FILE})
|
||||
else()
|
||||
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/trunk/lib/packages/${TARGET_FILE})
|
||||
set(TARGET_URI https://projects.blender.org/blender/lib-source/media/branch/main/${TARGET_FILE})
|
||||
endif()
|
||||
# Validate all required variables are set and give an explicit error message
|
||||
# rather than CMake erroring out later on with a more ambigious error.
|
||||
@@ -84,7 +84,6 @@ download_source(PTHREADS)
|
||||
download_source(OPENEXR)
|
||||
download_source(FREETYPE)
|
||||
download_source(EPOXY)
|
||||
download_source(FREEGLUT)
|
||||
download_source(ALEMBIC)
|
||||
download_source(OPENSUBDIV)
|
||||
download_source(SDL)
|
||||
@@ -178,3 +177,4 @@ download_source(SHADERC_GLSLANG)
|
||||
download_source(VULKAN_HEADERS)
|
||||
download_source(VULKAN_LOADER)
|
||||
download_source(PYBIND11)
|
||||
download_source(DEFLATE)
|
||||
|
||||
@@ -200,6 +200,7 @@ ExternalProject_Add(external_ffmpeg
|
||||
--disable-outdev=alsa
|
||||
--disable-crystalhd
|
||||
--disable-sndio
|
||||
--disable-doc
|
||||
BUILD_COMMAND ${FFMPEG_CONFIGURE_COMMAND} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${FFMPEG_CONFIGURE_COMMAND} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make install
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ffmpeg ${DEFAULT_CMAKE_FLAGS}
|
||||
|
||||
@@ -2,13 +2,23 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Generated configuration files use an old `aclocal-1.15` on RockyLinux8.
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
set(_autoconf_cmd_optional ./autogen.sh &&)
|
||||
else()
|
||||
set(_autoconf_cmd_optional)
|
||||
endif()
|
||||
|
||||
|
||||
ExternalProject_Add(external_flex
|
||||
URL file://${PACKAGE_DIR}/${FLEX_FILE}
|
||||
URL_HASH ${FLEX_HASH_TYPE}=${FLEX_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/flex
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flex/src/external_flex/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/flex
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flex/src/external_flex/ && ${_autoconf_cmd_optional} ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/flex
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flex/src/external_flex/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flex/src/external_flex/ && make install
|
||||
INSTALL_DIR ${LIBDIR}/flex
|
||||
)
|
||||
|
||||
unset(_autoconf_cmd_optional)
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2012-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
set(FREEGLUT_EXTRA_ARGS
|
||||
-DFREEGLUT_BUILD_SHARED_LIBS=Off
|
||||
-DFREEGLUT_BUILD_STATIC_LIBS=On
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_freeglut
|
||||
URL file://${PACKAGE_DIR}/${FREEGLUT_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FREEGLUT_HASH_TYPE}=${FREEGLUT_HASH}
|
||||
PREFIX ${BUILD_DIR}/freeglut
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/freeglut ${DEFAULT_C_FLAGS} ${DEFAULT_CXX_FLAGS} ${FREEGLUT_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/freeglut
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
@@ -34,9 +34,9 @@ add_dependencies(
|
||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||
ExternalProject_Add_Step(external_freetype after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freetype ${HARVEST_TARGET}/freetype
|
||||
# harfbuzz *NEEDS* to find freetype.lib and will not be conviced to take alternative names so just give it
|
||||
# what it wants.
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/freetype/lib/freetype2st.lib ${LIBDIR}/freetype/lib/freetype.lib
|
||||
# harfbuzz *NEEDS* to find freetype.lib and will not be conviced to take alternative names so just give it
|
||||
# what it wants.
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/freetype/lib/freetype2st.lib ${LIBDIR}/freetype/lib/freetype.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
|
||||
@@ -21,10 +21,6 @@ if(WIN32)
|
||||
# PNG.
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
|
||||
# FREEGLUT -> OPENGL.
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||
|
||||
DEPENDS
|
||||
)
|
||||
endif()
|
||||
@@ -225,7 +221,8 @@ else()
|
||||
"*"
|
||||
)
|
||||
harvest(openimagedenoise/include openimagedenoise/include "*")
|
||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||
harvest_rpath_lib(openimagedenoise/lib openimagedenoise/lib "*${SHAREDLIBEXT}*")
|
||||
harvest(openimagedenoise/lib/cmake/OpenImageDenoise-${OIDN_VERSION} openimagedenoise/lib/cmake/OpenImageDenoise "*.cmake")
|
||||
harvest(embree/include embree/include "*.h")
|
||||
harvest(embree/lib embree/lib "*.a")
|
||||
harvest_rpath_lib(embree/lib embree/lib "*${SHAREDLIBEXT}*")
|
||||
@@ -248,7 +245,7 @@ else()
|
||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||
harvest_rpath_bin(osl/bin osl/bin "oslc")
|
||||
harvest(osl/include osl/include "*.h")
|
||||
harvest(osl/lib osl/lib "*.a")
|
||||
harvest_rpath_lib(osl/lib osl/lib "*${SHAREDLIBEXT}*")
|
||||
harvest(osl/share/OSL/shaders osl/share/OSL/shaders "*.h")
|
||||
harvest(png/include png/include "*.h")
|
||||
harvest(png/lib png/lib "*.a")
|
||||
@@ -276,6 +273,7 @@ else()
|
||||
harvest(webp/lib webp/lib "*.a")
|
||||
harvest(webp/include webp/include "*.h")
|
||||
harvest(usd/include usd/include "*.h")
|
||||
harvest(usd/include usd/include "*.hpp")
|
||||
harvest_rpath_lib(usd/lib usd/lib "libusd_ms${SHAREDLIBEXT}")
|
||||
harvest(usd/lib/usd usd/lib/usd "*")
|
||||
harvest_rpath_python(
|
||||
|
||||
@@ -15,6 +15,7 @@ ExternalProject_Add(external_imath
|
||||
PREFIX ${BUILD_DIR}/imath
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/imath ${DEFAULT_CMAKE_FLAGS} ${IMATH_EXTRA_ARGS}
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/imath/src/external_imath < ${PATCH_DIR}/imath_358.diff
|
||||
INSTALL_DIR ${LIBDIR}/imath
|
||||
)
|
||||
|
||||
|
||||
@@ -39,7 +39,9 @@ set(ISPC_EXTRA_ARGS
|
||||
-DISPC_NO_DUMPS=On
|
||||
-DISPC_INCLUDE_EXAMPLES=Off
|
||||
-DISPC_INCLUDE_TESTS=Off
|
||||
-DLLVM_ROOT=${LIBDIR}/llvm/lib/cmake/llvm
|
||||
-DISPC_INCLUDE_RT=Off
|
||||
-DLLVM_CONFIG_EXECUTABLE=${LIBDIR}/llvm/bin/llvm-config
|
||||
-DLLVM_DIR=${LIBDIR}/llvm/lib/cmake/llvm/
|
||||
-DLLVM_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
||||
-DCLANG_EXECUTABLE=${LIBDIR}/llvm/bin/clang
|
||||
-DCLANGPP_EXECUTABLE=${LIBDIR}/llvm/bin/clang++
|
||||
|
||||
@@ -29,6 +29,8 @@ set(LLVM_EXTRA_ARGS
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
||||
-DLLVM_ENABLE_ZSTD=OFF
|
||||
-DLLVM_ENABLE_ZLIB=OFF
|
||||
-DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
|
||||
@@ -11,17 +11,22 @@ set(MATERIALX_EXTRA_ARGS
|
||||
-DMATERIALX_BUILD_SHARED_LIBS=ON
|
||||
-DMATERIALX_BUILD_TESTS=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
# This policy makes pybind11_ROOT work.
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0074=NEW
|
||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
LIST(APPEND MATERIALX_EXTRA_ARGS -DPYTHON_LIBRARIES=${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_materialx
|
||||
URL file://${PACKAGE_DIR}/${MATERIALX_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${MATERIALX_HASH_TYPE}=${MATERIALX_HASH}
|
||||
PREFIX ${BUILD_DIR}/materialx
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/materialx/src/external_materialx < ${PATCH_DIR}/materialx.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/materialx ${DEFAULT_CMAKE_FLAGS} ${MATERIALX_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/materialx
|
||||
)
|
||||
|
||||
@@ -22,14 +22,14 @@ set(MESA_EXTRA_FLAGS
|
||||
-Dcpp_args=${MESA_CXXFLAGS}
|
||||
-Dc_link_args=${MESA_LDFLAGS}
|
||||
-Dcpp_link_args=${MESA_LDFLAGS}
|
||||
-Dglx=gallium-xlib
|
||||
-Dglx=xlib
|
||||
-Dgallium-drivers=swrast
|
||||
-Ddri-drivers=
|
||||
-Dvulkan-drivers=
|
||||
-Dgbm=disabled
|
||||
-Degl=disabled
|
||||
-Dgles1=disabled
|
||||
-Dgles2=disabled
|
||||
-Dcpp_rtti=false
|
||||
-Dshared-llvm=disabled
|
||||
# Without this, the build fails when: `wayland-scanner` is not found.
|
||||
# At some point we will likely want to support Wayland.
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(MINIZIPNG_EXTRA_ARGS
|
||||
# Disable most compression methods like OpenColorIO does, enabling
|
||||
# more is not needed and will give link errors.
|
||||
-DMZ_FETCH_LIBS=OFF
|
||||
-DMZ_LIBCOMP=OFF
|
||||
-DMZ_PKCRYPT=OFF
|
||||
@@ -11,10 +13,11 @@ set(MINIZIPNG_EXTRA_ARGS
|
||||
-DMZ_SIGNING=OFF
|
||||
-DMZ_LZMA=OFF
|
||||
-DMZ_ZSTD=OFF
|
||||
-DMZ_BZIP2=OFF
|
||||
-DMZ_ICONV=OFF
|
||||
-DMZ_ZLIB=ON
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DBZIP2_LIBRARY=${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}
|
||||
-DBZIP2_INCLUDE_DIR=${LIBDIR}/bzip2/include/
|
||||
# Because OCIO hardcodes a non standard include path
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=${LIBDIR}/minizipng/include/minizip-ng
|
||||
)
|
||||
|
||||
@@ -17,6 +17,7 @@ ExternalProject_Add(external_ocloc
|
||||
PREFIX ${BUILD_DIR}/ocloc
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ocloc ${DEFAULT_CMAKE_FLAGS} ${OCLOC_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/ocloc
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/ocloc/src/external_ocloc/ < ${PATCH_DIR}/ocloc.diff
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
|
||||
@@ -8,8 +8,8 @@ if(BUILD_MODE STREQUAL Release)
|
||||
-DALSOFT_NO_CONFIG_UTIL=ON
|
||||
-DALSOFT_EXAMPLES=OFF
|
||||
-DALSOFT_TESTS=OFF
|
||||
-DALSOFT_CONFIG=OFF
|
||||
-DALSOFT_HRTF_DEFS=OFF
|
||||
-DALSOFT_INSTALL_CONFIG=OFF
|
||||
-DALSOFT_INSTALL_HRTF_DATA=OFF
|
||||
-DALSOFT_INSTALL=ON
|
||||
-DALSOFT_BACKEND_SNDIO=OFF
|
||||
)
|
||||
|
||||
@@ -11,7 +11,7 @@ set(OPENCOLORIO_EXTRA_ARGS
|
||||
-DOCIO_BUILD_DOCS=OFF
|
||||
-DOCIO_BUILD_TESTS=OFF
|
||||
-DOCIO_BUILD_GPU_TESTS=OFF
|
||||
-DOCIO_USE_SSE=ON
|
||||
-DOCIO_USE_SIMD=ON
|
||||
|
||||
-DOCIO_INSTALL_EXT_PACKAGES=NONE
|
||||
|
||||
@@ -21,7 +21,7 @@ set(OPENCOLORIO_EXTRA_ARGS
|
||||
-Dpystring_ROOT=${LIBDIR}/pystring
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
-Dminizip-ng_ROOT=${LIBDIR}/minizipng
|
||||
-Dminizip-ng_INCLUDE_DIR=${LIBDIR}/minizipng/include
|
||||
-Dminizip-ng_INCLUDE_DIR=${LIBDIR}/minizipng/include/minizip-ng
|
||||
-Dminizip-ng_LIBRARY=${LIBDIR}/minizipng/lib/libminizip${LIBEXT}
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
@@ -30,14 +30,10 @@ set(OPENCOLORIO_EXTRA_ARGS
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
# Work around issue where minizip-ng_LIBRARY assumes -ng in file name.
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
"-DCMAKE_SHARED_LINKER_FLAGS=-liconv ${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}"
|
||||
)
|
||||
elseif(UNIX)
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
"-DCMAKE_SHARED_LINKER_FLAGS=${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}"
|
||||
-Dminizip_LIBRARY=${LIBDIR}/minizipng/lib/libminizip${LIBEXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -72,7 +68,6 @@ ExternalProject_Add(external_opencolorio
|
||||
URL_HASH ${OPENCOLORIO_HASH_TYPE}=${OPENCOLORIO_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/opencolorio
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencolorio/src/external_opencolorio < ${PATCH_DIR}/opencolorio.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencolorio ${DEFAULT_CMAKE_FLAGS} ${OPENCOLORIO_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/opencolorio
|
||||
)
|
||||
@@ -93,14 +88,14 @@ if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_opencolorio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/include ${HARVEST_TARGET}/opencolorio/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/bin/OpenColorIO_2_2.dll ${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_2_2.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/bin/OpenColorIO_2_3.dll ${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_2_3.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib ${HARVEST_TARGET}/opencolorio/lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_opencolorio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/bin/OpenColorIO_d_2_2.dll ${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_d_2_2.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/bin/OpenColorIO_d_2_3.dll ${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_d_2_3.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/Opencolorio_d.lib ${HARVEST_TARGET}/opencolorio/lib/OpenColorIO_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib/site-packages ${HARVEST_TARGET}/opencolorio/lib/site-packages-debug
|
||||
DEPENDEES install
|
||||
|
||||
@@ -14,8 +14,6 @@ endif()
|
||||
|
||||
set(OPENEXR_EXTRA_ARGS
|
||||
${OPENEXR_EXTRA_ARGS}
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DBUILD_TESTING=OFF
|
||||
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
@@ -23,13 +21,14 @@ set(OPENEXR_EXTRA_ARGS
|
||||
-DOPENEXR_INSTALL_EXAMPLES=OFF
|
||||
-DImath_DIR=${LIBDIR}/imath/lib/cmake/Imath
|
||||
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||
-Dlibdeflate_DIR=${LIBDIR}/deflate/lib/cmake/libdeflate
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openexr
|
||||
URL file://${PACKAGE_DIR}/${OPENEXR_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENEXR_HASH_TYPE}=${OPENEXR_HASH}
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openexr/src/external_openexr < ${PATCH_DIR}/openexr_b18905772e.diff
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 2 -d ${BUILD_DIR}/openexr/src/external_openexr < ${PATCH_DIR}/openexr_deflate_1588.diff
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openexr
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr ${DEFAULT_CMAKE_FLAGS} ${OPENEXR_EXTRA_ARGS}
|
||||
@@ -51,6 +50,6 @@ endif()
|
||||
|
||||
add_dependencies(
|
||||
external_openexr
|
||||
external_zlib
|
||||
external_imath
|
||||
external_deflate
|
||||
)
|
||||
|
||||
@@ -2,29 +2,68 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
||||
set(OIDN_EXTRA_ARGS
|
||||
-DOIDN_APPS=OFF
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
||||
-DOIDN_STATIC_LIB=ON
|
||||
-DOIDN_STATIC_RUNTIME=OFF
|
||||
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
||||
-DOIDN_FILTER_RTLIGHTMAP=OFF
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
if(APPLE)
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DOIDN_DEVICE_METAL=ON
|
||||
)
|
||||
else()
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DOIDN_DEVICE_SYCL=ON
|
||||
-DOIDN_DEVICE_SYCL_AOT=OFF
|
||||
-DOIDN_DEVICE_CUDA=ON
|
||||
-DOIDN_DEVICE_HIP=ON
|
||||
-DLEVEL_ZERO_ROOT=${LIBDIR}/level-zero
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DTBB_DEBUG_LIBRARY=${LIBDIR}/tbb/lib/tbb.lib
|
||||
-DTBB_DEBUG_LIBRARY_MALLOC=${LIBDIR}/tbb/lib/tbbmalloc.lib
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
set(OIDN_CMAKE_FLAGS ${DEFAULT_CLANG_CMAKE_FLAGS}
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-L"${LIBDIR}/dpcpp/lib"
|
||||
-DCMAKE_EXE_LINKER_FLAGS=-L"${LIBDIR}/dpcpp/lib"
|
||||
)
|
||||
else()
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-Dtbb_LIBRARY_RELEASE=${LIBDIR}/tbb/lib/tbb_static.a
|
||||
-Dtbbmalloc_LIBRARY_RELEASE=${LIBDIR}/tbb/lib/tbbmalloc_static.a
|
||||
if(NOT APPLE)
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang
|
||||
-DCMAKE_FIND_ROOT_PATH=${LIBDIR}/ocloc
|
||||
)
|
||||
endif()
|
||||
set(OIDN_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
||||
endif()
|
||||
|
||||
set(ODIN_PATCH_COMMAND
|
||||
${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise <
|
||||
${PATCH_DIR}/oidn.diff
|
||||
)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# Replace `attrib.memoryType` with `attrib.type`.
|
||||
# See: https://github.com/ROCm/HIP/pull/2164
|
||||
set(ODIN_PATCH_COMMAND ${ODIN_PATCH_COMMAND} &&
|
||||
sed -i "s/(attrib\\.memoryType)/(attrib.type)/g"
|
||||
${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise/devices/hip/hip_device.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -33,10 +72,14 @@ ExternalProject_Add(external_openimagedenoise
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OIDN_HASH_TYPE}=${OIDN_HASH}
|
||||
PREFIX ${BUILD_DIR}/openimagedenoise
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimagedenoise ${DEFAULT_CMAKE_FLAGS} ${OIDN_EXTRA_ARGS}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimagedenoise ${OIDN_CMAKE_FLAGS} ${OIDN_EXTRA_ARGS}
|
||||
PATCH_COMMAND ${ODIN_PATCH_COMMAND}
|
||||
INSTALL_DIR ${LIBDIR}/openimagedenoise
|
||||
)
|
||||
|
||||
unset(ODIN_PATCH_COMMAND)
|
||||
|
||||
add_dependencies(
|
||||
external_openimagedenoise
|
||||
external_tbb
|
||||
@@ -44,22 +87,26 @@ add_dependencies(
|
||||
external_python
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_openimagedenoise after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openimagedenoise/include ${HARVEST_TARGET}/openimagedenoise/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/openimagedenoise.lib ${HARVEST_TARGET}/openimagedenoise/lib/openimagedenoise.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/common.lib ${HARVEST_TARGET}/openimagedenoise/lib/common.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/dnnl.lib ${HARVEST_TARGET}/openimagedenoise/lib/dnnl.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_openimagedenoise after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/openimagedenoise.lib ${HARVEST_TARGET}/openimagedenoise/lib/openimagedenoise_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/common.lib ${HARVEST_TARGET}/openimagedenoise/lib/common_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/dnnl.lib ${HARVEST_TARGET}/openimagedenoise/lib/dnnl_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(UNIX AND NOT APPLE)
|
||||
add_dependencies(
|
||||
external_openimagedenoise
|
||||
external_dpcpp
|
||||
external_ocloc
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT APPLE)
|
||||
add_dependencies(
|
||||
external_openimagedenoise
|
||||
external_level-zero
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||
ExternalProject_Add_Step(external_openimagedenoise after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openimagedenoise/bin ${HARVEST_TARGET}/openimagedenoise/bin
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openimagedenoise/lib ${HARVEST_TARGET}/openimagedenoise/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openimagedenoise/include ${HARVEST_TARGET}/openimagedenoise/include
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -109,9 +109,9 @@ ExternalProject_Add(external_openimageio
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openimageio
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/oiio_deadlock.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/oiio_3984.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/oiio_webp.diff
|
||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/oiio_webp.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/oiio_4044.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/oiio_4062.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio ${DEFAULT_CMAKE_FLAGS} ${OPENIMAGEIO_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/openimageio
|
||||
)
|
||||
@@ -140,7 +140,12 @@ if(WIN32)
|
||||
ExternalProject_Add_Step(external_openimageio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/iconvert.exe ${HARVEST_TARGET}/OpenImageIO/bin/iconvert.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/igrep.exe ${HARVEST_TARGET}/OpenImageIO/bin/igrep.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/iinfo.exe ${HARVEST_TARGET}/OpenImageIO/bin/iinfo.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/maketx.exe ${HARVEST_TARGET}/OpenImageIO/bin/maketx.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/oiiotool.exe ${HARVEST_TARGET}/OpenImageIO/bin/oiiotool.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/OpenImageIO.dll ${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/OpenImageIO_Util.dll ${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO_Util.dll
|
||||
DEPENDEES install
|
||||
|
||||
@@ -22,26 +22,15 @@ set(OPENSUBDIV_EXTRA_ARGS
|
||||
-DNO_GLEW=ON
|
||||
-DNO_GLFW=ON
|
||||
-DNO_GLFW_X11=ON
|
||||
-DTBB_DIR=${LIBDIR}/tbb/lib/cmake/tbb
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
|
||||
)
|
||||
else()
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
-DTBB_LOCATION=${LIBDIR}/tbb
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_opensubdiv
|
||||
URL file://${PACKAGE_DIR}/${OPENSUBDIV_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENSUBDIV_HASH_TYPE}=${OPENSUBDIV_HASH}
|
||||
PREFIX ${BUILD_DIR}/opensubdiv
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opensubdiv -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${OPENSUBDIV_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/opensubdiv
|
||||
)
|
||||
|
||||
@@ -37,6 +37,7 @@ set(OPENVDB_EXTRA_ARGS
|
||||
-DOPENVDB_PYTHON_WRAP_ALL_GRID_TYPES=ON
|
||||
-DUSE_NUMPY=ON
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
-Dpybind11_DIR=${LIBDIR}/pybind11/share/cmake/pybind11
|
||||
|
||||
# OPENVDB_AX Disabled for now as it adds ~25MB distribution wise
|
||||
# with no blender code depending on it, seems wasteful.
|
||||
@@ -46,13 +47,11 @@ set(OPENVDB_EXTRA_ARGS
|
||||
# -DLLVM_DIR=${LIBDIR}/llvm/lib/cmake/llvm
|
||||
)
|
||||
|
||||
set(OPENVDB_PATCH ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff)
|
||||
if(APPLE)
|
||||
set(OPENVDB_PATCH
|
||||
${OPENVDB_PATCH} &&
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb_metal.diff
|
||||
)
|
||||
endif()
|
||||
set(OPENVDB_PATCH
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff &&
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb_1706.diff &&
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb_1733.diff
|
||||
)
|
||||
|
||||
ExternalProject_Add(openvdb
|
||||
URL file://${PACKAGE_DIR}/${OPENVDB_FILE}
|
||||
@@ -73,6 +72,7 @@ add_dependencies(
|
||||
external_blosc
|
||||
external_python
|
||||
external_numpy
|
||||
external_pybind11
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -81,7 +81,7 @@ if(WIN32)
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/pyopenvdb.pyd ${HARVEST_TARGET}openvdb/python/pyopenvdb.pyd
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/pyopenvdb.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_amd64.pyd ${HARVEST_TARGET}openvdb/python/pyopenvdb.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_amd64.pyd
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
@@ -89,7 +89,7 @@ if(WIN32)
|
||||
ExternalProject_Add_Step(openvdb after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb_d.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb_d.dll ${HARVEST_TARGET}/openvdb/bin/openvdb_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/pyopenvdb_d.pyd ${HARVEST_TARGET}openvdb/python/pyopenvdb_d.pyd
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/pyopenvdb_d.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_amd64.pyd ${HARVEST_TARGET}openvdb/python/pyopenvdb_d.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_amd64.pyd
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -97,6 +97,19 @@ if(WIN32)
|
||||
set(BLENDER_CLANG_CMAKE_CXX_FLAGS_RELEASE "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS -O2 -DNDEBUG -DPLATFORM_WINDOWS -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CLANG_CMAKE_CXX_FLAGS_RELWITHDEBINFO "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS -g -O2 -DNDEBUG -DPLATFORM_WINDOWS -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
|
||||
set(DEFAULT_CLANG_CMAKE_FLAGS
|
||||
-DCMAKE_BUILD_TYPE=${BUILD_MODE}
|
||||
-DCMAKE_C_FLAGS_DEBUG=${BLENDER_CLANG_CMAKE_C_FLAGS_DEBUG}
|
||||
-DCMAKE_C_FLAGS_MINSIZEREL=${BLENDER_CLANG_CMAKE_C_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_C_FLAGS_RELEASE=${BLENDER_CLANG_CMAKE_C_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO=${BLENDER_CLANG_CMAKE_C_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${BLENDER_CLANG_CMAKE_CXX_FLAGS_DEBUG}
|
||||
-DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CLANG_CMAKE_CXX_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CLANG_CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${BLENDER_CLANG_CMAKE_CXX_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_CXX_STANDARD=17
|
||||
)
|
||||
|
||||
set(PLATFORM_FLAGS)
|
||||
set(PLATFORM_CXX_FLAGS)
|
||||
set(PLATFORM_CMAKE_FLAGS)
|
||||
@@ -164,7 +177,7 @@ else()
|
||||
set(PLATFORM_CXXFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -std=c++17 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||
set(PLATFORM_LDFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin19.0.0) # OS X 10.15
|
||||
else()
|
||||
set(PLATFORM_BUILD_TARGET --build=aarch64-apple-darwin20.0.0) # macOS 11.00
|
||||
endif()
|
||||
|
||||
@@ -22,7 +22,7 @@ set(OSL_EXTRA_ARGS
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
${OSL_FLEX_BISON}
|
||||
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DLINKSTATIC=OFF
|
||||
-DOSL_BUILD_PLUGINS=OFF
|
||||
-DSTOP_ON_WARNING=OFF
|
||||
@@ -38,9 +38,15 @@ set(OSL_EXTRA_ARGS
|
||||
-DJPEG_ROOT=${LIBDIR}/jpeg
|
||||
-DUSE_PYTHON=OFF
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
-DUSE_OIIO_STATIC=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-DPython_ROOT=${LIBDIR}/python
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
|
||||
if(NOT APPLE)
|
||||
list(APPEND OSL_EXTRA_ARGS -DOSL_USE_OPTIX=ON)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_osl
|
||||
URL file://${PACKAGE_DIR}/${OSL_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
@@ -83,10 +89,14 @@ if(WIN32)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_osl after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslnoise.lib ${HARVEST_TARGET}/osl/lib/oslnoise_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp_d.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec_d.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery_d.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslnoise_d.lib ${HARVEST_TARGET}/osl/lib/oslnoise_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/bin/oslcomp_d.dll ${HARVEST_TARGET}/osl/bin/oslcomp_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/bin/oslexec_d.dll ${HARVEST_TARGET}/osl/bin/oslexec_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/bin/oslquery_d.dll ${HARVEST_TARGET}/osl/bin/oslquery_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/bin/oslnoise_d.dll ${HARVEST_TARGET}/osl/bin/oslnoise_d.dll
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -13,6 +13,7 @@ ExternalProject_Add(external_pybind11
|
||||
URL_HASH ${PYBIND11_HASH_TYPE}=${PYBIND11_HASH}
|
||||
PREFIX ${BUILD_DIR}/pybind11
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/pybind11/src/external_pybind11 < ${PATCH_DIR}/pybind11_4761.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pybind11 ${DEFAULT_CMAKE_FLAGS} ${PYBIND11_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/pybind11
|
||||
)
|
||||
|
||||
@@ -37,7 +37,7 @@ if(WIN32)
|
||||
# regardless of the version actually in there.
|
||||
PATCH_COMMAND mkdir ${PYTHON_EXTERNALS_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\zlib-1.2.13 ${ZLIB_SOURCE_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\openssl-1.1.1u ${SSL_SOURCE_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\openssl-3.0.11 ${SSL_SOURCE_FOLDER_DOS} &&
|
||||
${CMAKE_COMMAND} -E copy ${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h ${PYTHON_EXTERNALS_FOLDER}/zlib-1.2.13/zconf.h &&
|
||||
${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_windows.diff
|
||||
CONFIGURE_COMMAND echo "."
|
||||
@@ -79,16 +79,36 @@ else()
|
||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
endif()
|
||||
set(PYTHON_BINARY ${LIBDIR}/python/bin/python${PYTHON_SHORT_VERSION})
|
||||
# Link against zlib statically (Unix). Avoid rpath issues (macOS).
|
||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_unix.diff)
|
||||
set(PYTHON_CONFIGURE_EXTRA_ARGS "")
|
||||
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include ${PLATFORM_CFLAGS}")
|
||||
set(PYTHON_LDFLAGS "-L${LIBDIR}/ffi/lib -L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib ${PLATFORM_LDFLAGS}")
|
||||
|
||||
# Various flags to convince Python to use our own versions of ffi, sqlite, ssl, bzip2, lzma and zlib.
|
||||
# Using pkg-config is only supported for some, and even then we need to work around issues.
|
||||
set(PYTHON_CONFIGURE_EXTRA_ARGS --with-openssl=${LIBDIR}/ssl)
|
||||
set(PYTHON_CFLAGS "${PLATFORM_CFLAGS} ")
|
||||
# Manually specify some library paths. For ffi there is no other way, for sqlite is needed because
|
||||
# LIBSQLITE3_LIBS does not work, and ssl because it uses the wrong ssl/lib dir instead of ssl/lib64.
|
||||
set(PYTHON_LDFLAGS "-L${LIBDIR}/ffi/lib -L${LIBDIR}/sqlite/lib -L${LIBDIR}/ssl/lib -L${LIBDIR}/ssl/lib64 ${PLATFORM_LDFLAGS} ")
|
||||
set(PYTHON_CONFIGURE_EXTRA_ENV
|
||||
export CFLAGS=${PYTHON_CFLAGS} &&
|
||||
export CPPFLAGS=${PYTHON_CFLAGS} &&
|
||||
export LDFLAGS=${PYTHON_LDFLAGS} &&
|
||||
export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig:${LIBDIR}/ssl/lib/pkgconfig:${LIBDIR}/ssl/lib64/pkgconfig)
|
||||
# Use pkg-config for libraries that support it.
|
||||
export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig:${LIBDIR}/sqlite/lib/pkgconfig:${LIBDIR}/ssl/lib/pkgconfig:${LIBDIR}/ssl/lib64/pkgconfig
|
||||
# Use flags documented by ./configure for other libs.
|
||||
export BZIP2_CFLAGS=-I${LIBDIR}/bzip2/include
|
||||
export BZIP2_LIBS=${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}
|
||||
export LIBLZMA_CFLAGS=-I${LIBDIR}/lzma/include
|
||||
export LIBLZMA_LIBS=${LIBDIR}/lzma/lib/${LIBPREFIX}lzma${LIBEXT}
|
||||
export ZLIB_CFLAGS=-I${LIBDIR}/zlib/include
|
||||
export ZLIB_LIBS=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
)
|
||||
|
||||
# This patch indludes changes to fix missing -lm for sqlite and and fix the order of
|
||||
# -ldl flags for ssl to avoid link errors.
|
||||
if(APPLE)
|
||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_apple.diff)
|
||||
else()
|
||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_unix.diff)
|
||||
endif()
|
||||
|
||||
# NOTE: untested on APPLE so far.
|
||||
if(NOT APPLE)
|
||||
|
||||
@@ -111,9 +111,9 @@ endif()
|
||||
|
||||
message("Checking for perl")
|
||||
# download perl for libvpx
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip")
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.38.0.1-64bit-portable.zip")
|
||||
message("Downloading perl")
|
||||
file(DOWNLOAD "http://strawberryperl.com/download/5.22.1.3/strawberry-perl-5.22.1.3-64bit-portable.zip" "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip")
|
||||
file(DOWNLOAD "https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_5380_5361/strawberry-perl-5.38.0.1-64bit-portable.zip" "${DOWNLOAD_DIR}/strawberry-perl-5.38.0.1-64bit-portable.zip")
|
||||
endif()
|
||||
|
||||
# make perl root directory
|
||||
@@ -125,10 +125,10 @@ if(NOT EXISTS "${DOWNLOAD_DIR}/perl")
|
||||
endif()
|
||||
|
||||
# extract perl
|
||||
if((NOT EXISTS "${DOWNLOAD_DIR}/perl/portable.perl") AND (EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip"))
|
||||
if((NOT EXISTS "${DOWNLOAD_DIR}/perl/portable.perl") AND (EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.38.0.1-64bit-portable.zip"))
|
||||
message("Extracting perl")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip
|
||||
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/strawberry-perl-5.38.0.1-64bit-portable.zip
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/perl
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -41,7 +41,7 @@ else()
|
||||
# using the system directory `/etc/ssl` might seem the obvious choice,
|
||||
# there is no guarantee the version of SSL used with Blender is compatible with the systems,
|
||||
# where changes to the SSL configuration format can cause SSL not to load (see #114452).
|
||||
# So reference a directory known not to exist. Ideally Blender could distribute it's own SSL
|
||||
# So reference a directory known not to exist. Ideally Blender could distribute its own SSL
|
||||
# directory, but this isn't compatible with hard coded paths.
|
||||
# See #111132 & https://github.com/openssl/openssl/issues/20185 for details.
|
||||
-DOPENSSLDIR=\\"/dev/null\\"
|
||||
|
||||
@@ -14,6 +14,7 @@ set(TIFF_EXTRA_ARGS
|
||||
-Dzstd=OFF
|
||||
-Dwebp=OFF
|
||||
-Dtiff-tests=OFF
|
||||
-Dsphinx=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_tiff
|
||||
|
||||
@@ -111,12 +111,7 @@ ExternalProject_Add(external_usd
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/usd
|
||||
LIST_SEPARATOR ^^
|
||||
# usd_pull_1965.diff https://github.com/PixarAnimationStudios/USD/pull/1965
|
||||
# usd_hydra.diff - https://github.com/bnagirniak/RPRHydraRenderBlenderAddon/blob/master/usd.diff
|
||||
# usd_hydra.diff also included the blender changes and usd_pull_1965 and has been edited to remove those sections.
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/usd/src/external_usd < ${PATCH_DIR}/usd.diff &&
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/usd/src/external_usd < ${PATCH_DIR}/usd_pull_1965.diff &&
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/usd/src/external_usd < ${PATCH_DIR}/usd_hydra.diff &&
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/usd/src/external_usd < ${PATCH_DIR}/usd_core_profile.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/usd -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${USD_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/usd
|
||||
|
||||
@@ -2,6 +2,18 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Compilers
|
||||
#
|
||||
# Version used for precompiled library builds used for official releases.
|
||||
# For anyone making their own library build, matching these exactly is not
|
||||
# needed but it can be a useful reference.
|
||||
|
||||
set(RELEASE_GCC_VERSION 11.2.*)
|
||||
set(RELEASE_CUDA_VERSION 12.3.*)
|
||||
set(RELEASE_HIP_VERSION 5.7.*)
|
||||
|
||||
# Libraries
|
||||
#
|
||||
# CPE's are used to identify dependencies, for more information on what they
|
||||
# are please see https://nvd.nist.gov/products/cpe
|
||||
#
|
||||
@@ -18,9 +30,9 @@ set(ZLIB_FILE zlib-${ZLIB_VERSION}.tar.gz)
|
||||
set(ZLIB_CPE "cpe:2.3:a:zlib:zlib:${ZLIB_VERSION}:*:*:*:*:*:*:*")
|
||||
set(ZLIB_HOMEPAGE https://zlib.net)
|
||||
|
||||
set(OPENAL_VERSION 1.21.1)
|
||||
set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||
set(OPENAL_HASH a936806ebd8de417b0ffd8cf3f48f456)
|
||||
set(OPENAL_VERSION 1.23.1)
|
||||
set(OPENAL_URI https://github.com/kcat/openal-soft/releases/download/${OPENAL_VERSION}/openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||
set(OPENAL_HASH 58a73698288d2787451b61f8f4431513)
|
||||
set(OPENAL_HASH_TYPE MD5)
|
||||
set(OPENAL_FILE openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||
set(OPENAL_HOMEPAGE https://openal-soft.org/)
|
||||
@@ -40,12 +52,12 @@ set(JPEG_HASH_TYPE MD5)
|
||||
set(JPEG_FILE libjpeg-turbo-${JPEG_VERSION}.tar.gz)
|
||||
set(JPEG_CPE "cpe:2.3:a:d.r.commander:libjpeg-turbo:${JPEG_VERSION}:*:*:*:*:*:*:*")
|
||||
|
||||
set(BOOST_VERSION 1.80.0)
|
||||
set(BOOST_VERSION_SHORT 1.80)
|
||||
set(BOOST_VERSION_NODOTS 1_80_0)
|
||||
set(BOOST_VERSION_NODOTS_SHORT 1_80)
|
||||
set(BOOST_VERSION 1.82.0)
|
||||
set(BOOST_VERSION_SHORT 1.82)
|
||||
set(BOOST_VERSION_NODOTS 1_82_0)
|
||||
set(BOOST_VERSION_NODOTS_SHORT 1_82)
|
||||
set(BOOST_URI https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
||||
set(BOOST_HASH 077f074743ea7b0cb49c6ed43953ae95)
|
||||
set(BOOST_HASH f7050f554a65f6a42ece221eaeec1660)
|
||||
set(BOOST_HASH_TYPE MD5)
|
||||
set(BOOST_FILE boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
||||
set(BOOST_CPE "cpe:2.3:a:boost:boost:${BOOST_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -56,7 +68,7 @@ set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.tar.gz)
|
||||
set(BLOSC_HASH 134b55813b1dca57019d2a2dc1f7a923)
|
||||
set(BLOSC_HASH_TYPE MD5)
|
||||
set(BLOSC_FILE blosc-${BLOSC_VERSION}.tar.gz)
|
||||
set(BLOSC_CPE "cpe:2.3:a:c-blosc2_project:c-blosc2:${BLOSC_VERSION}:*:*:*:*:*:*:*")
|
||||
set(BLOSC_CPE "cpe:2.3:a:c-blosc_project:c-blosc:${BLOSC_VERSION}:*:*:*:*:*:*:*")
|
||||
|
||||
set(PTHREADS_VERSION 3.0.0)
|
||||
set(PTHREADS_URI http://prdownloads.sourceforge.net/pthreads4w/pthreads4w-code-v${PTHREADS_VERSION}.zip)
|
||||
@@ -65,15 +77,21 @@ set(PTHREADS_HASH_TYPE MD5)
|
||||
set(PTHREADS_FILE pthreads4w-code-${PTHREADS_VERSION}.zip)
|
||||
set(PTHREADS_HOMEPAGE https://github.com/fwbuilder/pthreads4w)
|
||||
|
||||
set(OPENEXR_VERSION 3.1.7)
|
||||
set(DEFLATE_VERSION 1.18)
|
||||
set(DEFLATE_URI https://github.com/ebiggers/libdeflate/archive/refs/tags/v${DEFLATE_VERSION}.tar.gz)
|
||||
set(DEFLATE_HASH a29d9dd653cbe03f2d5cd83972063f9e)
|
||||
set(DEFLATE_HASH_TYPE MD5)
|
||||
set(DEFLATE_FILE libdeflate-v${DEFLATE_VERSION}.tar.gz)
|
||||
|
||||
set(OPENEXR_VERSION 3.2.1)
|
||||
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_HASH ae68f0cb8b30a49c961fa87d31c60394)
|
||||
set(OPENEXR_HASH 1d5bb07433ec641cf3bb1b519a27ea6f)
|
||||
set(OPENEXR_HASH_TYPE MD5)
|
||||
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_CPE "cpe:2.3:a:openexr:openexr:${OPENEXR_VERSION}:*:*:*:*:*:*:*")
|
||||
|
||||
set(IMATH_VERSION 3.1.7)
|
||||
set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${IMATH_VERSION}.tar.gz)
|
||||
set(IMATH_HASH 5cedab446ab296c080957c3037c6d097)
|
||||
set(IMATH_HASH_TYPE MD5)
|
||||
set(IMATH_FILE imath-${IMATH_VERSION}.tar.gz)
|
||||
@@ -109,22 +127,15 @@ set(EPOXY_HASH f0730aad115c952e77591fcc805b1dc1)
|
||||
set(EPOXY_HASH_TYPE MD5)
|
||||
set(EPOXY_FILE libepoxy-${EPOXY_VERSION}.tar.gz)
|
||||
|
||||
set(FREEGLUT_VERSION 3.0.0)
|
||||
set(FREEGLUT_URI http://prdownloads.sourceforge.net/freeglut/freeglut/${FREEGLUT_VERSION}/freeglut-${FREEGLUT_VERSION}.tar.gz)
|
||||
set(FREEGLUT_HASH 90c3ca4dd9d51cf32276bc5344ec9754)
|
||||
set(FREEGLUT_HASH_TYPE MD5)
|
||||
set(FREEGLUT_FILE freeglut-${FREEGLUT_VERSION}.tar.gz)
|
||||
set(FREEGLUT_HOMEPAGE https://freeglut.sourceforge.net/)
|
||||
|
||||
set(ALEMBIC_VERSION 1.8.3)
|
||||
set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.tar.gz)
|
||||
set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
|
||||
set(ALEMBIC_HASH_TYPE MD5)
|
||||
set(ALEMBIC_FILE alembic-${ALEMBIC_VERSION}.tar.gz)
|
||||
|
||||
set(OPENSUBDIV_VERSION v3_5_0)
|
||||
set(OPENSUBDIV_VERSION v3_6_0)
|
||||
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
|
||||
set(OPENSUBDIV_HASH 230f5cd2911d6240e58a3773b9c6e5e4)
|
||||
set(OPENSUBDIV_HASH cd03aaf8890bc0b8550eef62029cabe7)
|
||||
set(OPENSUBDIV_HASH_TYPE MD5)
|
||||
set(OPENSUBDIV_FILE opensubdiv-${OPENSUBDIV_VERSION}.tar.gz)
|
||||
|
||||
@@ -142,9 +153,9 @@ set(OPENCOLLADA_HASH ee7dae874019fea7be11613d07567493)
|
||||
set(OPENCOLLADA_HASH_TYPE MD5)
|
||||
set(OPENCOLLADA_FILE opencollada-${OPENCOLLADA_VERSION}.tar.gz)
|
||||
|
||||
set(OPENCOLORIO_VERSION 2.2.0)
|
||||
set(OPENCOLORIO_VERSION 2.3.2)
|
||||
set(OPENCOLORIO_URI https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
|
||||
set(OPENCOLORIO_HASH d58a5980adba2d89a363100a09daa5f3)
|
||||
set(OPENCOLORIO_HASH 8af74fcb8c4820ab21204463a06ba490)
|
||||
set(OPENCOLORIO_HASH_TYPE MD5)
|
||||
set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz)
|
||||
|
||||
@@ -154,9 +165,9 @@ set(MINIZIPNG_HASH 09dcc8a9def348e1be9659e384c2cd55)
|
||||
set(MINIZIPNG_HASH_TYPE MD5)
|
||||
set(MINIZIPNG_FILE minizip-ng-${MINIZIPNG_VERSION}.tar.gz)
|
||||
|
||||
set(LLVM_VERSION 12.0.0)
|
||||
set(LLVM_VERSION 17.0.6)
|
||||
set(LLVM_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/llvm-project-${LLVM_VERSION}.src.tar.xz)
|
||||
set(LLVM_HASH 5a4fab4d7fc84aefffb118ac2c8a4fc0)
|
||||
set(LLVM_HASH 62a09d65240a5133f001ace48269dbfc)
|
||||
set(LLVM_HASH_TYPE MD5)
|
||||
set(LLVM_FILE llvm-project-${LLVM_VERSION}.src.tar.xz)
|
||||
set(LLVM_CPE "cpe:2.3:a:llvm:compiler:${LLVM_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -168,15 +179,15 @@ if(APPLE)
|
||||
set(OPENMP_HASH 6eade16057edbdecb3c4eef9daa2bfcf)
|
||||
else()
|
||||
set(OPENMP_VERSION ${LLVM_VERSION})
|
||||
set(OPENMP_HASH ac48ce3e4582ccb82f81ab59eb3fc9dc)
|
||||
set(OPENMP_HASH 5cc01d151821c546bb4ec6fb03d86c29)
|
||||
endif()
|
||||
set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${OPENMP_VERSION}/openmp-${OPENMP_VERSION}.src.tar.xz)
|
||||
set(OPENMP_HASH_TYPE MD5)
|
||||
set(OPENMP_FILE openmp-${OPENMP_VERSION}.src.tar.xz)
|
||||
|
||||
set(OPENIMAGEIO_VERSION v2.4.15.0)
|
||||
set(OPENIMAGEIO_VERSION v2.5.6.0)
|
||||
set(OPENIMAGEIO_URI https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
set(OPENIMAGEIO_HASH 784391406ee309075a3f82e60a42f023)
|
||||
set(OPENIMAGEIO_HASH d02db17716a20a71a446bdc6de57bd9c)
|
||||
set(OPENIMAGEIO_HASH_TYPE MD5)
|
||||
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
|
||||
@@ -205,12 +216,12 @@ set(TIFF_FILE tiff-${TIFF_VERSION}.tar.gz)
|
||||
set(TIFF_CPE "cpe:2.3:a:libtiff:libtiff:${TIFF_VERSION}:*:*:*:*:*:*:*")
|
||||
set(TIFF_HOMEPAGE http://www.simplesystems.org/libtiff/)
|
||||
|
||||
# Recent commit from 1.13.0.2 under development, which includes string table
|
||||
# Recent commit from 1.13.5.0 under development, which includes string table
|
||||
# changes that make the Cycles OptiX implementation work. Official 1.12 OSL
|
||||
# releases should also build but without OptiX support.
|
||||
set(OSL_VERSION 1a7670600c8b08c2443a78d03c8c27e9a1149140)
|
||||
set(OSL_URI https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/${OSL_VERSION}.tar.gz)
|
||||
set(OSL_HASH 7b6d6716b05d1addb92a8f47280bf77f)
|
||||
set(OSL_VERSION 1.13.7.0)
|
||||
set(OSL_URI https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/refs/tags/v${OSL_VERSION}.tar.gz)
|
||||
set(OSL_HASH 769ae444a7df0e6561b3e745fd2eb50d)
|
||||
set(OSL_HASH_TYPE MD5)
|
||||
set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
|
||||
|
||||
@@ -219,11 +230,11 @@ set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
|
||||
# BZIP2, FFI, SQLITE and change the versions in this file as well. For compliance
|
||||
# reasons there can be no exceptions to this.
|
||||
|
||||
set(PYTHON_VERSION 3.10.13)
|
||||
set(PYTHON_SHORT_VERSION 3.10)
|
||||
set(PYTHON_SHORT_VERSION_NO_DOTS 310)
|
||||
set(PYTHON_VERSION 3.11.7)
|
||||
set(PYTHON_SHORT_VERSION 3.11)
|
||||
set(PYTHON_SHORT_VERSION_NO_DOTS 311)
|
||||
set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz)
|
||||
set(PYTHON_HASH 8847dc6458d1431d0ae0f55942deeb89)
|
||||
set(PYTHON_HASH d96c7e134c35a8c46236f8a0e566b69c)
|
||||
set(PYTHON_HASH_TYPE MD5)
|
||||
set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz)
|
||||
set(PYTHON_CPE "cpe:2.3:a:python:python:${PYTHON_VERSION}:-:*:*:*:*:*:*")
|
||||
@@ -237,9 +248,9 @@ set(TBB_HASH_TYPE MD5)
|
||||
set(TBB_FILE oneTBB-${TBB_VERSION}.tar.gz)
|
||||
set(TBB_CPE "cpe:2.3:a:intel:threading_building_blocks:${TBB_YEAR}:*:*:*:*:*:*:*")
|
||||
|
||||
set(OPENVDB_VERSION 10.0.0)
|
||||
set(OPENVDB_VERSION 11.0.0)
|
||||
set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
|
||||
set(OPENVDB_HASH 64301c737e16b26c8f3085a31e6397e9)
|
||||
set(OPENVDB_HASH 025f4fc4db58419341a4991f1a16174a)
|
||||
set(OPENVDB_HASH_TYPE MD5)
|
||||
set(OPENVDB_FILE openvdb-${OPENVDB_VERSION}.tar.gz)
|
||||
|
||||
@@ -273,10 +284,10 @@ set(TOML_VERSION 0.10.2)
|
||||
# Build system for other packages (not used by Blender at run-time).
|
||||
set(MESON_VERSION 0.63.0)
|
||||
|
||||
set(NUMPY_VERSION 1.23.5)
|
||||
set(NUMPY_SHORT_VERSION 1.23)
|
||||
set(NUMPY_VERSION 1.24.3)
|
||||
set(NUMPY_SHORT_VERSION 1.24)
|
||||
set(NUMPY_URI https://github.com/numpy/numpy/releases/download/v${NUMPY_VERSION}/numpy-${NUMPY_VERSION}.tar.gz)
|
||||
set(NUMPY_HASH 8b2692a511a3795f3af8af2cd7566a15)
|
||||
set(NUMPY_HASH 89e5e2e78407032290ae6acf6dcaea46)
|
||||
set(NUMPY_HASH_TYPE MD5)
|
||||
set(NUMPY_FILE numpy-${NUMPY_VERSION}.tar.gz)
|
||||
set(NUMPY_CPE "cpe:2.3:a:numpy:numpy:${NUMPY_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -319,9 +330,9 @@ set(FLAC_FILE flac-${FLAC_VERSION}.tar.xz)
|
||||
set(FLAC_CPE "cpe:2.3:a:flac_project:flac:${FLAC_VERSION}:*:*:*:*:*:*:*")
|
||||
set(FLAC_HOMEPAGE https://xiph.org/flac/)
|
||||
|
||||
set(VPX_VERSION 1.11.0)
|
||||
set(VPX_VERSION 1.14.0)
|
||||
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
|
||||
set(VPX_HASH 965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83)
|
||||
set(VPX_HASH 5f21d2db27071c8a46f1725928a10227ae45c5cd1cad3727e4aafbe476e321fa)
|
||||
set(VPX_HASH_TYPE SHA256)
|
||||
set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz)
|
||||
set(VPX_CPE "cpe:2.3:a:webmproject:libvpx:${VPX_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -348,9 +359,9 @@ set(OPENJPEG_HASH_TYPE SHA256)
|
||||
set(OPENJPEG_FILE openjpeg-v${OPENJPEG_VERSION}.tar.gz)
|
||||
set(OPENJPEG_CPE "cpe:2.3:a:uclouvain:openjpeg:${OPENJPEG_VERSION}:*:*:*:*:*:*:*")
|
||||
|
||||
set(FFMPEG_VERSION 6.0)
|
||||
set(FFMPEG_VERSION 6.1.1)
|
||||
set(FFMPEG_URI http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
||||
set(FFMPEG_HASH 47d062731c9f66a78380e35a19aac77cebceccd1c7cc309b9c82343ffc430c3d)
|
||||
set(FFMPEG_HASH 5e3133939a61ef64ac9b47ffd29a5ea6e337a4023ef0ad972094b4da844e3a20)
|
||||
set(FFMPEG_HASH_TYPE SHA256)
|
||||
set(FFMPEG_FILE ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
||||
set(FFMPEG_CPE "cpe:2.3:a:ffmpeg:ffmpeg:${FFMPEG_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -397,9 +408,9 @@ set(JEMALLOC_HASH 3d41fbf006e6ebffd489bdb304d009ae)
|
||||
set(JEMALLOC_HASH_TYPE MD5)
|
||||
set(JEMALLOC_FILE jemalloc-${JEMALLOC_VERSION}.tar.bz2)
|
||||
|
||||
set(XML2_VERSION 2.10.4)
|
||||
set(XML2_URI https://download.gnome.org/sources/libxml2/2.10/libxml2-${XML2_VERSION}.tar.xz)
|
||||
set(XML2_HASH 76808c467a58c31e2dbd511e71d5fd13)
|
||||
set(XML2_VERSION 2.12.3)
|
||||
set(XML2_URI https://download.gnome.org/sources/libxml2/2.12/libxml2-${XML2_VERSION}.tar.xz)
|
||||
set(XML2_HASH 13871e7cf2137b4b9b9da753ffef538c)
|
||||
set(XML2_HASH_TYPE MD5)
|
||||
set(XML2_FILE libxml2-${XML2_VERSION}.tar.xz)
|
||||
set(XML2_CPE "cpe:2.3:a:xmlsoft:libxml2:${XML2_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -465,13 +476,12 @@ set(BZIP2_HOMEPAGE https://sourceware.org/bzip2/)
|
||||
# NOTE: This will *HAVE* to match the version python ships on windows which
|
||||
# is hardcoded in pythons PCbuild/get_externals.bat. For compliance reasons there
|
||||
# can be no exceptions to this.
|
||||
set(FFI_VERSION 3.3)
|
||||
set(FFI_URI https://sourceware.org/pub/libffi/libffi-${FFI_VERSION}.tar.gz)
|
||||
set(FFI_HASH 72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056)
|
||||
set(FFI_VERSION 3.4.4)
|
||||
set(FFI_URI https://github.com/libffi/libffi/releases/download/v${FFI_VERSION}/libffi-${FFI_VERSION}.tar.gz)
|
||||
set(FFI_HASH d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676)
|
||||
set(FFI_HASH_TYPE SHA256)
|
||||
set(FFI_FILE libffi-${FFI_VERSION}.tar.gz)
|
||||
set(FFI_CPE "cpe:2.3:a:libffi_project:libffi:${FFI_VERSION}:*:*:*:*:*:*:*")
|
||||
set(FFI_HOMEPAGE https://sourceware.org/libffi/)
|
||||
|
||||
set(LZMA_VERSION 5.2.5)
|
||||
set(LZMA_URI https://tukaani.org/xz/xz-${LZMA_VERSION}.tar.bz2)
|
||||
@@ -481,9 +491,9 @@ set(LZMA_FILE xz-${LZMA_VERSION}.tar.bz2)
|
||||
set(LZMA_HOMEPAGE https://tukaani.org/lzma/)
|
||||
|
||||
# NOTE: Python's build has been modified to use our ssl version.
|
||||
set(SSL_VERSION 3.1.2)
|
||||
set(SSL_VERSION 3.1.5)
|
||||
set(SSL_URI https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz)
|
||||
set(SSL_HASH a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539)
|
||||
set(SSL_HASH 6ae015467dabf0469b139ada93319327be24b98251ffaeceda0221848dc09262)
|
||||
set(SSL_HASH_TYPE SHA256)
|
||||
set(SSL_FILE openssl-${SSL_VERSION}.tar.gz)
|
||||
set(SSL_CPE "cpe:2.3:a:openssl:openssl:${SSL_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -492,10 +502,10 @@ set(SSL_HOMEPAGE https://www.openssl.org)
|
||||
# Note: This will *HAVE* to match the version python ships on windows which
|
||||
# is hardcoded in pythons PCbuild/get_externals.bat for compliance reasons there
|
||||
# can be no exceptions to this.
|
||||
set(SQLITE_VERSION 3.40.1)
|
||||
set(SQLLITE_LONG_VERSION 3400100)
|
||||
set(SQLITE_URI https://www.sqlite.org/2022/sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
||||
set(SQLITE_HASH b8c2d4bc0094f5c0ce985dc0e237dfcbaa1f6275)
|
||||
set(SQLITE_VERSION 3.45.1)
|
||||
set(SQLLITE_LONG_VERSION 3450100)
|
||||
set(SQLITE_URI https://www.sqlite.org/2024/sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
||||
set(SQLITE_HASH 650305e234add12fc1e6bef0b365d86a087b3d38)
|
||||
set(SQLITE_HASH_TYPE SHA1)
|
||||
set(SQLITE_FILE sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
||||
set(SQLITE_CPE "cpe:2.3:a:sqlite:sqlite:${SQLITE_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -507,21 +517,21 @@ set(EMBREE_HASH 4b525955b08e1249a700dea5b5ffc8b2)
|
||||
set(EMBREE_HASH_TYPE MD5)
|
||||
set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip)
|
||||
|
||||
set(USD_VERSION 23.05)
|
||||
set(USD_VERSION 23.11)
|
||||
set(USD_URI https://github.com/PixarAnimationStudios/OpenUSD/archive/v${USD_VERSION}.tar.gz)
|
||||
set(USD_HASH d4d92ff112bc82a1718bcd129b853a54)
|
||||
set(USD_HASH 77358a244f50fc607e8b40764ea4f6c6)
|
||||
set(USD_HASH_TYPE MD5)
|
||||
set(USD_FILE usd-v${USD_VERSION}.tar.gz)
|
||||
|
||||
set(MATERIALX_VERSION 1.38.6)
|
||||
set(MATERIALX_VERSION 1.38.8)
|
||||
set(MATERIALX_URI https://github.com/AcademySoftwareFoundation/MaterialX/archive/refs/tags/v${MATERIALX_VERSION}.tar.gz)
|
||||
set(MATERIALX_HASH d49c9fdef34b5702fc60058d3e1864f2)
|
||||
set(MATERIALX_HASH fad8f4e19305fb2ee920cbff638f3560)
|
||||
set(MATERIALX_HASH_TYPE MD5)
|
||||
set(MATERIALX_FILE materialx-v${MATERIALX_VERSION}.tar.gz)
|
||||
|
||||
set(OIDN_VERSION 1.4.3)
|
||||
set(OIDN_VERSION 2.2.2)
|
||||
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
||||
set(OIDN_HASH 027093eaf5e8b4e45835b991137b38e6)
|
||||
set(OIDN_HASH 40c04b0371334ab863230e99a587fd59)
|
||||
set(OIDN_HASH_TYPE MD5)
|
||||
set(OIDN_FILE oidn-${OIDN_VERSION}.src.tar.gz)
|
||||
|
||||
@@ -532,9 +542,9 @@ set(LIBGLU_HASH_TYPE MD5)
|
||||
set(LIBGLU_FILE glu-${LIBGLU_VERSION}.tar.xz)
|
||||
set(LIBGLU_HOMEPAGE https://gitlab.freedesktop.org/mesa/glu)
|
||||
|
||||
set(MESA_VERSION 21.1.5)
|
||||
set(MESA_VERSION 23.3.0)
|
||||
set(MESA_URI ftp://ftp.freedesktop.org/pub/mesa/mesa-${MESA_VERSION}.tar.xz)
|
||||
set(MESA_HASH 022c7293074aeeced2278c872db4fa693147c70f8595b076cf3f1ef81520766d)
|
||||
set(MESA_HASH 50f729dd60ed6335b989095baad81ef5edf7cfdd4b4b48b9b955917cb07d69c5)
|
||||
set(MESA_HASH_TYPE SHA256)
|
||||
set(MESA_FILE mesa-${MESA_VERSION}.tar.xz)
|
||||
set(MESA_CPE "cpe:2.3:a:mesa3d:mesa:${MESA_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -553,10 +563,10 @@ set(XR_OPENXR_SDK_HASH a2623ebab3d0b340bc16311b14f02075)
|
||||
set(XR_OPENXR_SDK_HASH_TYPE MD5)
|
||||
set(XR_OPENXR_SDK_FILE OpenXR-SDK-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
||||
|
||||
set(WL_PROTOCOLS_VERSION 1.31)
|
||||
set(WL_PROTOCOLS_FILE wayland-protocols-${WL_PROTOCOLS_VERSION}.tar.gz)
|
||||
set(WL_PROTOCOLS_URI https://gitlab.freedesktop.org/wayland/wayland-protocols/-/archive/${WL_PROTOCOLS_VERSION}/${WL_PROTOCOLS_FILE})
|
||||
set(WL_PROTOCOLS_HASH a28ff59a56e2ebb746048b6ef8d931d6)
|
||||
set(WL_PROTOCOLS_VERSION 1.32)
|
||||
set(WL_PROTOCOLS_FILE wayland-protocols-${WL_PROTOCOLS_VERSION}.tar.xz)
|
||||
set(WL_PROTOCOLS_URI https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${WL_PROTOCOLS_VERSION}/downloads/${WL_PROTOCOLS_FILE})
|
||||
set(WL_PROTOCOLS_HASH 00c2cedb0d2df714a0965a00c19385c6)
|
||||
set(WL_PROTOCOLS_HASH_TYPE MD5)
|
||||
set(WL_PROTOCOLS_HOMEPAGE https://gitlab.freedesktop.org/wayland/wayland-protocols)
|
||||
|
||||
@@ -581,9 +591,9 @@ set(WAYLAND_WESTON_HASH 44542b60bf9b9fe3add904af11bbad98)
|
||||
set(WAYLAND_WESTON_HASH_TYPE MD5)
|
||||
set(WAYLAND_WESTON_HOMEPAGE https://wayland.freedesktop.org)
|
||||
|
||||
set(ISPC_VERSION v1.17.0)
|
||||
set(ISPC_VERSION v1.21.1)
|
||||
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
||||
set(ISPC_HASH 4f476a3109332a77fe839a9014c60ca9)
|
||||
set(ISPC_HASH edd16b016aabc07819d14fd86a1fb5d0)
|
||||
set(ISPC_HASH_TYPE MD5)
|
||||
set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz)
|
||||
|
||||
@@ -616,9 +626,9 @@ set(ZSTD_HASH_TYPE SHA256)
|
||||
set(ZSTD_FILE zstd-${ZSTD_VERSION}.tar.gz)
|
||||
set(ZSTD_CPE "cpe:2.3:a:facebook:zstandard:${ZSTD_VERSION}:*:*:*:*:*:*:*")
|
||||
|
||||
set(SSE2NEON_VERSION v1.6.0)
|
||||
set(SSE2NEON_VERSION cfaa59fc04fecb117c0a0f3fe9c82dece6f359ad)
|
||||
set(SSE2NEON_URI https://github.com/DLTcollab/sse2neon/archive/${SSE2NEON_VERSION}.tar.gz)
|
||||
set(SSE2NEON_HASH 06f4693219deccb91b457135d836fc514a1c0a57e9fa66b143982901d2d19677)
|
||||
set(SSE2NEON_HASH 5491c5038a301a6b0ba0531e516568bb50d165d206360f03d8d56558a2490669)
|
||||
set(SSE2NEON_HASH_TYPE SHA256)
|
||||
set(SSE2NEON_FILE sse2neon-${SSE2NEON_VERSION}.tar.gz)
|
||||
|
||||
@@ -636,9 +646,9 @@ set(OPENPGL_HASH 1ec806d434d45e43e098f82ee9be0cb74928343898c57490b34ff80584e9805
|
||||
set(OPENPGL_HASH_TYPE SHA256)
|
||||
set(OPENPGL_FILE openpgl-${OPENPGL_VERSION}.tar.gz)
|
||||
|
||||
set(LEVEL_ZERO_VERSION v1.8.8)
|
||||
set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${LEVEL_ZERO_VERSION}.tar.gz)
|
||||
set(LEVEL_ZERO_HASH 3553ae8fa0d2d69c4210a8f3428bd6612bd8bb8a627faf52c3658a01851e66d2)
|
||||
set(LEVEL_ZERO_VERSION 1.15.8)
|
||||
set(LEVEL_ZERO_URI https://codeload.github.com/oneapi-src/level-zero/tar.gz/refs/tags/v${LEVEL_ZERO_VERSION})
|
||||
set(LEVEL_ZERO_HASH 80663dbd4d01d9519185c6e568f2e836bfea7484363f4da8cf5cf77c3bf58602)
|
||||
set(LEVEL_ZERO_HASH_TYPE SHA256)
|
||||
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
|
||||
|
||||
@@ -712,9 +722,9 @@ set(UNIFIED_RUNTIME_FILE unified-runtime-${UNIFIED_RUNTIME_VERSION}.tar.gz)
|
||||
# compiler, the versions used are taken from the following location
|
||||
# https://github.com/intel/intel-graphics-compiler/releases
|
||||
|
||||
set(IGC_VERSION 1.0.14828.26)
|
||||
set(IGC_VERSION 1.0.15468.25)
|
||||
set(IGC_URI https://github.com/intel/intel-graphics-compiler/archive/refs/tags/igc-${IGC_VERSION}.tar.gz)
|
||||
set(IGC_HASH acad90b3e149cf87875e6b9100152f9e7644d6cc79ed54eaf52698abdb42076c)
|
||||
set(IGC_HASH c2c36af98ead4f4f6975633eaa53f45b84cb96ce48d9bfa879bebfaf12367b79)
|
||||
set(IGC_HASH_TYPE SHA256)
|
||||
set(IGC_FILE igc-${IGC_VERSION}.tar.gz)
|
||||
|
||||
@@ -758,9 +768,9 @@ set(IGC_SPIRV_TOOLS_HASH 327b2dba4515646eee28c1a5fe1332891e81c8b6ff289363f52877f
|
||||
set(IGC_SPIRV_TOOLS_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_TOOLS_FILE SPIR-V-Tools-${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||
|
||||
set(IGC_SPIRV_TRANSLATOR_VERSION 23f398bf369093b1fd67459db8071ffcc6b92658)
|
||||
set(IGC_SPIRV_TRANSLATOR_VERSION 7e332d0acc8ee57462d9fbedefaf411fc193fdd0)
|
||||
set(IGC_SPIRV_TRANSLATOR_URI https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH a96447656ff6b40d9ad286524e22f4e7319d439c54136026fe72550d1162cd35)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH 29aadf5fd4e64ff1d4f86446eacd6a7439efeb280478988c36314c4441072c36)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||
|
||||
@@ -768,15 +778,15 @@ set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.
|
||||
### Intel Graphics Compiler DEPS END ###
|
||||
########################################
|
||||
|
||||
set(GMMLIB_VERSION intel-gmmlib-22.3.0)
|
||||
set(GMMLIB_VERSION intel-gmmlib-22.3.11)
|
||||
set(GMMLIB_URI https://github.com/intel/gmmlib/archive/refs/tags/${GMMLIB_VERSION}.tar.gz)
|
||||
set(GMMLIB_HASH c1f33e1519edfc527127baeb0436b783430dfd256c643130169a3a71dc86aff9)
|
||||
set(GMMLIB_HASH b97f4e501c1e902a559cbd6597c008a700f4ab8c495680bf1968db99c6547afe)
|
||||
set(GMMLIB_HASH_TYPE SHA256)
|
||||
set(GMMLIB_FILE ${GMMLIB_VERSION}.tar.gz)
|
||||
|
||||
set(OCLOC_VERSION 23.30.26918.47)
|
||||
set(OCLOC_VERSION 23.43.27642.40)
|
||||
set(OCLOC_URI https://github.com/intel/compute-runtime/archive/refs/tags/${OCLOC_VERSION}.tar.gz)
|
||||
set(OCLOC_HASH 9890f29cbf27ce7eb845f3f7711fe8f3b0c4ee2164b77871fe51102548553f8f)
|
||||
set(OCLOC_HASH 67d0c6f3103ff12408a628e14f7170da3e0220313e10799693d576cea7821fe2)
|
||||
set(OCLOC_HASH_TYPE SHA256)
|
||||
set(OCLOC_FILE ocloc-${OCLOC_VERSION}.tar.gz)
|
||||
|
||||
@@ -826,17 +836,17 @@ set(SHADERC_GLSLANG_HASH 3b3c79ad8e9132ffcb8b63cc29c532e2)
|
||||
set(SHADERC_GLSLANG_HASH_TYPE MD5)
|
||||
set(SHADERC_GLSLANG_FILE glslang-${SHADERC_GLSLANG_VERSION}.tar.gz)
|
||||
|
||||
set(VULKAN_VERSION v1.2.198)
|
||||
set(VULKAN_VERSION v1.3.270)
|
||||
|
||||
set(VULKAN_HEADERS_VERSION ${VULKAN_VERSION})
|
||||
set(VULKAN_HEADERS_URI https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/${VULKAN_HEADERS_VERSION}.tar.gz)
|
||||
set(VULKAN_HEADERS_HASH 64fe73e887c963ad546bfc7f9505fa1d)
|
||||
set(VULKAN_HEADERS_HASH 805bde4c23197b86334cee5c2cf69d8e)
|
||||
set(VULKAN_HEADERS_HASH_TYPE MD5)
|
||||
set(VULKAN_HEADERS_FILE Vulkan-Headers-${VULKAN_HEADERS_VERSION}.tar.gz)
|
||||
|
||||
set(VULKAN_LOADER_VERSION ${VULKAN_VERSION})
|
||||
set(VULKAN_LOADER_URI https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/${VULKAN_LOADER_VERSION}.tar.gz)
|
||||
set(VULKAN_LOADER_HASH 015170a74f648fd2b41e209b6bf1ebc4)
|
||||
set(VULKAN_LOADER_HASH 6903f9d285afcd1a167ec7c46cbabd49)
|
||||
set(VULKAN_LOADER_HASH_TYPE MD5)
|
||||
set(VULKAN_LOADER_FILE Vulkan-Loader-${VULKAN_LOADER_VERSION}.tar.gz)
|
||||
|
||||
|
||||
@@ -2,44 +2,23 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(XML2_EXTRA_ARGS
|
||||
-DLIBXML2_WITH_ZLIB=OFF
|
||||
-DLIBXML2_WITH_LZMA=OFF
|
||||
-DLIBXML2_WITH_PYTHON=OFF
|
||||
-DLIBXML2_WITH_ICONV=OFF
|
||||
-DLIBXML2_WITH_TESTS=OFF
|
||||
-DLIBXML2_WITH_PROGRAMS=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
ExternalProject_Add(external_xml2
|
||||
URL file://${PACKAGE_DIR}/${XML2_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/xml2 ${DEFAULT_CMAKE_FLAGS} ${XML2_EXTRA_ARGS}
|
||||
PREFIX ${BUILD_DIR}/xml2
|
||||
INSTALL_DIR ${LIBDIR}/xml2
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add(external_xml2
|
||||
URL file://${PACKAGE_DIR}/${XML2_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
|
||||
PREFIX ${BUILD_DIR}/xml2
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && ${CONFIGURE_COMMAND}
|
||||
--prefix=${LIBDIR}/xml2
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
--with-python=no
|
||||
--with-lzma=no
|
||||
--with-zlib=no
|
||||
--with-iconv=no
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make install
|
||||
INSTALL_DIR ${LIBDIR}/xml2
|
||||
)
|
||||
endif()
|
||||
set(XML2_EXTRA_ARGS
|
||||
-DLIBXML2_WITH_ZLIB=OFF
|
||||
-DLIBXML2_WITH_LZMA=OFF
|
||||
-DLIBXML2_WITH_PYTHON=OFF
|
||||
-DLIBXML2_WITH_ICONV=OFF
|
||||
-DLIBXML2_WITH_TESTS=OFF
|
||||
-DLIBXML2_WITH_PROGRAMS=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
ExternalProject_Add(external_xml2
|
||||
URL file://${PACKAGE_DIR}/${XML2_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/xml2 ${DEFAULT_CMAKE_FLAGS} ${XML2_EXTRA_ARGS}
|
||||
PREFIX ${BUILD_DIR}/xml2
|
||||
INSTALL_DIR ${LIBDIR}/xml2
|
||||
)
|
||||
|
||||
if(WIN32 AND BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_xml2 after_install
|
||||
|
||||
@@ -24,7 +24,7 @@ if(WIN32)
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zlib/include/ ${HARVEST_TARGET}/zlib/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/zlib/bin/zlib.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/zlib/lib/zlib.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstatic${LIBEXT} ${LIBDIR}/zlib/lib/zlib${LIBEXT}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstatic${LIBEXT} ${LIBDIR}/zlib/lib/zlib${LIBEXT}
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -133,10 +133,19 @@ BUILD_MANDATORY_SUBPACKAGES = (
|
||||
DISTRO_ID_ARCH: "base-devel",
|
||||
},
|
||||
),
|
||||
Package(name="Git",
|
||||
Package(name="Git", is_group=True,
|
||||
sub_packages=(
|
||||
Package(name="Git LFS",
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "git-lfs",
|
||||
DISTRO_ID_FEDORA: "git-lfs",
|
||||
DISTRO_ID_SUSE: "git-lfs",
|
||||
DISTRO_ID_ARCH: "git-lfs",
|
||||
},
|
||||
),
|
||||
),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "git",
|
||||
DISTRO_ID_FEDORA: "git",
|
||||
DISTRO_ID_SUSE: None,
|
||||
DISTRO_ID_SUSE: "git",
|
||||
DISTRO_ID_ARCH: "git",
|
||||
},
|
||||
),
|
||||
@@ -303,7 +312,7 @@ DEPS_MANDATORY_SUBPACKAGES = (
|
||||
},
|
||||
),
|
||||
Package(name="FreeType Library",
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libfreetype6-dev",
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libfreetype-dev",
|
||||
DISTRO_ID_FEDORA: "freetype-devel",
|
||||
DISTRO_ID_SUSE: "freetype2-devel",
|
||||
DISTRO_ID_ARCH: "freetype2",
|
||||
@@ -505,6 +514,13 @@ DEPS_OPTIONAL_SUBPACKAGES = (
|
||||
DISTRO_ID_ARCH: ...,
|
||||
},
|
||||
),
|
||||
Package(name="Deflate Library",
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libdeflate-dev",
|
||||
DISTRO_ID_FEDORA: "libdeflate-devel",
|
||||
DISTRO_ID_SUSE: "libdeflate-devel",
|
||||
DISTRO_ID_ARCH: "libdeflate",
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@@ -548,7 +564,7 @@ PYTHON_SUBPACKAGES = (
|
||||
DISTRO_ID_ARCH: "python-urllib3",
|
||||
},
|
||||
),
|
||||
Package(name="Certifi", version="2021.10.08", version_short="2021.10", version_min="2021.0", version_mex="2023.0",
|
||||
Package(name="Certifi", version="2021.10.08", version_short="2021.10", version_min="2021.0", version_mex="2025.0",
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "python3-certifi",
|
||||
DISTRO_ID_FEDORA: "python3-certifi",
|
||||
DISTRO_ID_SUSE: suse_pypackages_name_gen("certifi"),
|
||||
@@ -569,14 +585,14 @@ PYTHON_SUBPACKAGES = (
|
||||
DISTRO_ID_ARCH: "python-zstandard",
|
||||
},
|
||||
),
|
||||
Package(name="NumPy", version="1.23.5", version_short="1.23", version_min="1.14", version_mex="2.0",
|
||||
Package(name="NumPy", version="1.24.3", version_short="1.24", version_min="1.14", version_mex="2.0",
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "python3-numpy",
|
||||
DISTRO_ID_FEDORA: "python3-numpy",
|
||||
DISTRO_ID_SUSE: suse_pypackages_name_gen("numpy"),
|
||||
DISTRO_ID_ARCH: "python-numpy",
|
||||
},
|
||||
),
|
||||
Package(name="NumPy Devel", version="1.23.5", version_short="1.23", version_min="1.14", version_mex="2.0",
|
||||
Package(name="NumPy Devel", version="1.24.3", version_short="1.24", version_min="1.14", version_mex="2.0",
|
||||
distro_package_names={DISTRO_ID_DEBIAN: ...,
|
||||
DISTRO_ID_FEDORA: ...,
|
||||
DISTRO_ID_SUSE: suse_pypackages_name_gen("numpy-devel"),
|
||||
@@ -706,7 +722,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "clang", # clang-format is part of the main clang package.
|
||||
},
|
||||
),
|
||||
Package(name="Python", is_mandatory=True, version="3.10.12", version_short="3.10", version_min="3.10", version_mex="3.12",
|
||||
Package(name="Python", is_mandatory=True, version="3.11.6", version_short="3.11", version_min="3.11", version_mex="3.13",
|
||||
sub_packages=PYTHON_SUBPACKAGES,
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "python3-dev",
|
||||
DISTRO_ID_FEDORA: "python3-devel",
|
||||
@@ -714,7 +730,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "python",
|
||||
},
|
||||
),
|
||||
Package(name="Boost Libraries", is_mandatory=True, version="1.80.0", version_short="1.80", version_min="1.49", version_mex="2.0",
|
||||
Package(name="Boost Libraries", is_mandatory=True, version="1.82.0", version_short="1.82", version_min="1.49", version_mex="2.0",
|
||||
sub_packages=BOOST_SUBPACKAGES,
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libboost-dev",
|
||||
DISTRO_ID_FEDORA: "boost-devel",
|
||||
@@ -730,7 +746,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "intel-oneapi-tbb",
|
||||
},
|
||||
),
|
||||
Package(name="OpenColorIO Library", is_mandatory=False, version="2.2.0", version_short="2.2", version_min="2.0", version_mex="3.0",
|
||||
Package(name="OpenColorIO Library", is_mandatory=False, version="2.3.2", version_short="2.3", version_min="2.0", version_mex="3.0",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libopencolorio-dev",
|
||||
DISTRO_ID_FEDORA: "OpenColorIO-devel",
|
||||
@@ -738,7 +754,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "opencolorio",
|
||||
},
|
||||
),
|
||||
Package(name="IMath Library", is_mandatory=False, version="3.1.7", version_short="3.1", version_min="3.0", version_mex="4.0",
|
||||
Package(name="IMath Library", is_mandatory=False, version="3.2.1", version_short="3.2", version_min="3.0", version_mex="4.0",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libimath-dev",
|
||||
DISTRO_ID_FEDORA: "imath-devel",
|
||||
@@ -746,7 +762,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "imath",
|
||||
},
|
||||
),
|
||||
Package(name="OpenEXR Library", is_mandatory=False, version="3.1.7", version_short="3.1", version_min="3.0", version_mex="4.0",
|
||||
Package(name="OpenEXR Library", is_mandatory=False, version="3.2.1", version_short="3.2", version_min="3.0", version_mex="4.0",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libopenexr-dev",
|
||||
DISTRO_ID_FEDORA: "openexr-devel",
|
||||
@@ -754,7 +770,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "openexr",
|
||||
},
|
||||
),
|
||||
Package(name="OpenImageIO Library", is_mandatory=True, version="2.4.11.0", version_short="2.4", version_min="2.2.0", version_mex="2.5.0",
|
||||
Package(name="OpenImageIO Library", is_mandatory=True, version="2.5.6.0", version_short="2.5", version_min="2.5.0", version_mex="2.6.0",
|
||||
sub_packages=(
|
||||
Package(name="OpenImageIO Tools", is_mandatory=False,
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "openimageio-tools",
|
||||
@@ -770,7 +786,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "openimageio",
|
||||
},
|
||||
),
|
||||
Package(name="LLVM Library", is_mandatory=False, version="12.0.0", version_short="12.0", version_min="11.0", version_mex="16.0",
|
||||
Package(name="LLVM Library", is_mandatory=False, version="17.0.6", version_short="17.0", version_min="15.0", version_mex="18.0",
|
||||
sub_packages=(
|
||||
Package(name="Clang Compiler", is_mandatory=False,
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "clang",
|
||||
@@ -793,7 +809,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "llvm",
|
||||
},
|
||||
),
|
||||
Package(name="OpenShadingLanguage Library", is_mandatory=False, version="1.13.0.2", version_short="1.13", version_min="1.11", version_mex="2.0",
|
||||
Package(name="OpenShadingLanguage Library", is_mandatory=False, version="1.13.2.0", version_short="1.13", version_min="1.11", version_mex="2.0",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: None, # No package currently.
|
||||
DISTRO_ID_FEDORA: "openshadinglanguage-devel",
|
||||
@@ -801,7 +817,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "openshadinglanguage",
|
||||
},
|
||||
),
|
||||
Package(name="OpenSubDiv Library", is_mandatory=False, version="3.5.0", version_short="3.5", version_min="3.5", version_mex="4.0",
|
||||
Package(name="OpenSubDiv Library", is_mandatory=False, version="3.6.0", version_short="3.6", version_min="3.5", version_mex="4.0",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: "libosd-dev",
|
||||
DISTRO_ID_FEDORA: "opensubdiv-devel",
|
||||
@@ -809,7 +825,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "opensubdiv",
|
||||
},
|
||||
),
|
||||
Package(name="OpenVDB Library", is_mandatory=False, version="10.0.0", version_short="10.0", version_min="10.0", version_mex="11.0",
|
||||
Package(name="OpenVDB Library", is_mandatory=False, version="11.0.0", version_short="11.0", version_min="10.0", version_mex="12.0",
|
||||
sub_packages=(
|
||||
# Assume packaged versions of the dependencies are compatible with OpenVDB package.
|
||||
Package(name="OpenVDB Dependencies", is_mandatory=False, is_group=True,
|
||||
@@ -845,7 +861,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "alembic",
|
||||
},
|
||||
),
|
||||
Package(name="MaterialX Library", is_mandatory=False, version="1.38.6", version_short="1.38", version_min="1.38", version_mex="1.40",
|
||||
Package(name="MaterialX Library", is_mandatory=False, version="1.38.8", version_short="1.38", version_min="1.38", version_mex="1.40",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: None,
|
||||
DISTRO_ID_FEDORA: None,
|
||||
@@ -853,7 +869,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "materialx-git",
|
||||
},
|
||||
),
|
||||
Package(name="USD Library", is_mandatory=False, version="23.05", version_short="23.05", version_min="20.05", version_mex="24.00",
|
||||
Package(name="USD Library", is_mandatory=False, version="23.11", version_short="23.11", version_min="20.05", version_mex="24.00",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: None,
|
||||
DISTRO_ID_FEDORA: "usd-devel",
|
||||
@@ -876,7 +892,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "embree",
|
||||
},
|
||||
),
|
||||
Package(name="OpenImageDenoiser Library", is_mandatory=False, version="1.4.3", version_short="1.4", version_min="1.4.0", version_mex="1.5",
|
||||
Package(name="OpenImageDenoiser Library", is_mandatory=False, version="2.2.0", version_short="2.2", version_min="2.0.0", version_mex="3.0",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: None,
|
||||
DISTRO_ID_FEDORA: "oidn-devel",
|
||||
@@ -884,7 +900,7 @@ PACKAGES_ALL = (
|
||||
DISTRO_ID_ARCH: "openimagedenoise",
|
||||
},
|
||||
),
|
||||
Package(name="Level Zero Library", is_mandatory=False, version="1.8.8", version_short="1.8", version_min="1.7", version_mex="2.0",
|
||||
Package(name="Level Zero Library", is_mandatory=False, version="1.15.8", version_short="1.15", version_min="1.7", version_mex="2.0",
|
||||
sub_packages=(),
|
||||
distro_package_names={DISTRO_ID_DEBIAN: None,
|
||||
DISTRO_ID_FEDORA: "oneapi-level-zero-devel",
|
||||
@@ -1707,7 +1723,7 @@ def argparse_create():
|
||||
"NOTE: To build with system package libraries instead of the precompiled ones when both are available,\n"
|
||||
"the `WITH_LIBS_PRECOMPILED` option must be disabled in CMake.\n"
|
||||
"\n"
|
||||
"See https://wiki.blender.org/wiki/Building_Blender for more details.\n"
|
||||
"See https://developer.blender.org/docs/handbook/building_blender/ for more details.\n"
|
||||
"\n"
|
||||
)
|
||||
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# This script is part of the official build environment, see wiki page for details.
|
||||
# https://wiki.blender.org/wiki/Building_Blender/Other/Rocky8ReleaseEnvironment
|
||||
# https://developer.blender.org/docs/handbook/release_process/build/rocky_8/
|
||||
|
||||
set -e
|
||||
|
||||
if [ `id -u` -ne 0 ]; then
|
||||
echo "This script must be run as root"
|
||||
exit 1
|
||||
echo "This script must be run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Required by: config manager command below to enable powertools.
|
||||
@@ -39,12 +39,14 @@ yum -y install scl-utils-build
|
||||
# Currently this is defined by the VFX platform (CY2023), see: https://vfxplatform.com
|
||||
yum -y install gcc-toolset-11
|
||||
|
||||
# Repository for CUDA (`nvcc`).
|
||||
dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/$(uname -i)/cuda-rhel8.repo
|
||||
|
||||
# Install packages needed for Blender's dependencies.
|
||||
PACKAGES_FOR_LIBS=(
|
||||
# Used to checkout Blender's code.
|
||||
git
|
||||
# Used to checkout Blender's `../lib/` directory.
|
||||
subversion
|
||||
git-lfs
|
||||
# Used to extract packages.
|
||||
bzip2
|
||||
# Used to extract packages.
|
||||
@@ -61,6 +63,9 @@ PACKAGES_FOR_LIBS=(
|
||||
automake
|
||||
libtool
|
||||
|
||||
# Required by: `external_libsndfile` configure scripts.
|
||||
autogen
|
||||
|
||||
# Used to set rpath on shared libraries
|
||||
patchelf
|
||||
|
||||
@@ -73,6 +78,21 @@ PACKAGES_FOR_LIBS=(
|
||||
mesa-libGL-devel
|
||||
mesa-libGLU-devel
|
||||
|
||||
# NOTE(@ideasman42): Currently flex's `autogen.sh` is required to run because the bundled
|
||||
# configuration is looking for an older version of `aclocal` than the system provides.
|
||||
# This is resolved by generating new configuration files which requires the `autopoint`
|
||||
# command from `gettext-devel`, if the flex package is updated we could remove this.
|
||||
# Required by: [`flex` running `autogen.sh` for `autopoint`].
|
||||
gettext-devel
|
||||
# NOTE(@ideasman42): It seems newer files generated by `autogen.sh` also require `makeinfo`
|
||||
# and there isn't a flag to disable GNU "info".
|
||||
# Required by: [`flex` as a build-time dependency for `makeinfo`].
|
||||
texinfo
|
||||
|
||||
# NOTE(@ideasman42): `nvcc` will *not* be added to the `PATH`, must be done manually.
|
||||
# Required by `external_openimagedenoise` (`nvcc` command)
|
||||
cuda-toolkit
|
||||
|
||||
# Required by: `external_ispc`.
|
||||
zlib-devel
|
||||
# TODO: dependencies build without this, consider removal.
|
||||
@@ -86,7 +106,7 @@ PACKAGES_FOR_LIBS=(
|
||||
# Why are both needed?
|
||||
yasm
|
||||
|
||||
# NOTE(@campbellbarton): while `python39` is available, the default Python version is 3.6.
|
||||
# NOTE(@ideasman42): while `python39` is available, the default Python version is 3.6.
|
||||
# This is used for the `python3-mako` package for e.g.
|
||||
# So use the "default" system Python since it means it's most compatible with other packages.
|
||||
python3
|
||||
@@ -96,6 +116,10 @@ PACKAGES_FOR_LIBS=(
|
||||
# Required by: `external_mesa`.
|
||||
expat-devel
|
||||
|
||||
# Required by: `external_mesa`.
|
||||
libxshmfence
|
||||
libxshmfence-devel
|
||||
|
||||
# Required by: `external_igc` & `external_osl` as a build-time dependency.
|
||||
bison
|
||||
# Required by: `external_osl` as a build-time dependency.
|
||||
@@ -118,7 +142,7 @@ PACKAGES_FOR_LIBS=(
|
||||
libinput-devel
|
||||
libevdev-devel
|
||||
mesa-libEGL-devel
|
||||
systemd-dev # for `libudev` (not so obvious!).
|
||||
systemd-devel # for `libudev` (not so obvious!).
|
||||
# Required by: `weston --headless` (run-time requirement for off screen rendering).
|
||||
mesa-dri-drivers
|
||||
mesa-libEGL
|
||||
@@ -148,3 +172,6 @@ yum -y install python3 python3-pip python3-devel
|
||||
# Dependencies for asound.
|
||||
yum -y install -y \
|
||||
alsa-lib-devel pulseaudio-libs-devel
|
||||
|
||||
# Required by Blender build option: `WITH_JACK`.
|
||||
yum -y install jack-audio-connection-kit-devel
|
||||
|
||||
@@ -28,5 +28,5 @@ install(TARGETS ${PROJECT_NAME}
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
PUBLIC_HEADER DESTINATION include/pystring
|
||||
PUBLIC_HEADER DESTINATION include
|
||||
)
|
||||
|
||||
@@ -187,3 +187,93 @@ index 17eeaafae194..09e6d2217aaa 100644
|
||||
return SYCLDeviceImages;
|
||||
}
|
||||
|
||||
diff --git a/sycl/source/detail/pi.cpp b/sycl/source/detail/pi.cpp
|
||||
index fb228cd85979..94e8438ee964 100644
|
||||
--- a/sycl/source/detail/pi.cpp
|
||||
+++ b/sycl/source/detail/pi.cpp
|
||||
@@ -635,45 +635,47 @@ static uint16_t getELFHeaderType(const unsigned char *ImgData, size_t ImgSize) {
|
||||
RT::PiDeviceBinaryType getBinaryImageFormat(const unsigned char *ImgData,
|
||||
size_t ImgSize) {
|
||||
// Top-level magic numbers for the recognized binary image formats.
|
||||
- struct {
|
||||
- RT::PiDeviceBinaryType Fmt;
|
||||
- const uint32_t Magic;
|
||||
- } Fmts[] = {{PI_DEVICE_BINARY_TYPE_SPIRV, 0x07230203},
|
||||
- {PI_DEVICE_BINARY_TYPE_LLVMIR_BITCODE, 0xDEC04342},
|
||||
- // 'I', 'N', 'T', 'C' ; Intel native
|
||||
- {PI_DEVICE_BINARY_TYPE_NATIVE, 0x43544E49}};
|
||||
-
|
||||
- if (ImgSize >= sizeof(Fmts[0].Magic)) {
|
||||
- detail::remove_const_t<decltype(Fmts[0].Magic)> Hdr = 0;
|
||||
- std::copy(ImgData, ImgData + sizeof(Hdr), reinterpret_cast<char *>(&Hdr));
|
||||
-
|
||||
- // Check headers for direct formats.
|
||||
- for (const auto &Fmt : Fmts) {
|
||||
- if (Hdr == Fmt.Magic)
|
||||
- return Fmt.Fmt;
|
||||
- }
|
||||
-
|
||||
- // ELF e_type for recognized binary image formats.
|
||||
- struct {
|
||||
- RT::PiDeviceBinaryType Fmt;
|
||||
- const uint16_t Magic;
|
||||
- } ELFFmts[] = {{PI_DEVICE_BINARY_TYPE_NATIVE, 0xFF04}, // OpenCL executable
|
||||
- {PI_DEVICE_BINARY_TYPE_NATIVE, 0xFF12}}; // ZEBIN executable
|
||||
-
|
||||
- // ELF files need to be parsed separately. The header type ends after 18
|
||||
- // bytes.
|
||||
- if (Hdr == 0x464c457F && ImgSize >= 18) {
|
||||
- uint16_t HdrType = getELFHeaderType(ImgData, ImgSize);
|
||||
- for (const auto &ELFFmt : ELFFmts) {
|
||||
- if (HdrType == ELFFmt.Magic)
|
||||
- return ELFFmt.Fmt;
|
||||
- }
|
||||
- // Newer ZEBIN format does not have a special header type, but can instead
|
||||
- // be identified by having a required .ze_info section.
|
||||
- if (checkELFSectionPresent(".ze_info", ImgData, ImgSize))
|
||||
- return PI_DEVICE_BINARY_TYPE_NATIVE;
|
||||
- }
|
||||
+ auto MatchMagicNumber = [&](auto Number) {
|
||||
+ return ImgSize >= sizeof(Number) &&
|
||||
+ std::memcmp(ImgData, &Number, sizeof(Number)) == 0;
|
||||
+ };
|
||||
+
|
||||
+ if (MatchMagicNumber(uint32_t{0x07230203}))
|
||||
+ return PI_DEVICE_BINARY_TYPE_SPIRV;
|
||||
+
|
||||
+ if (MatchMagicNumber(uint32_t{0xDEC04342}))
|
||||
+ return PI_DEVICE_BINARY_TYPE_LLVMIR_BITCODE;
|
||||
+
|
||||
+ if (MatchMagicNumber(uint32_t{0x43544E49}))
|
||||
+ // 'I', 'N', 'T', 'C' ; Intel native
|
||||
+ return PI_DEVICE_BINARY_TYPE_LLVMIR_BITCODE;
|
||||
+
|
||||
+ // Check for ELF format, size requirements include data we'll read in case of
|
||||
+ // succesful match.
|
||||
+ if (ImgSize >= 18 && MatchMagicNumber(uint32_t{0x464c457F})) {
|
||||
+ uint16_t ELFHdrType = getELFHeaderType(ImgData, ImgSize);
|
||||
+ if (ELFHdrType == 0xFF04)
|
||||
+ // OpenCL executable.
|
||||
+ return PI_DEVICE_BINARY_TYPE_NATIVE;
|
||||
+
|
||||
+ if (ELFHdrType == 0xFF12)
|
||||
+ // ZEBIN executable.
|
||||
+ return PI_DEVICE_BINARY_TYPE_NATIVE;
|
||||
+
|
||||
+ // Newer ZEBIN format does not have a special header type, but can instead
|
||||
+ // be identified by having a required .ze_info section.
|
||||
+ if (checkELFSectionPresent(".ze_info", ImgData, ImgSize))
|
||||
+ return PI_DEVICE_BINARY_TYPE_NATIVE;
|
||||
}
|
||||
+
|
||||
+ // "ar" format is used to pack binaries for multiple devices, e.g. via
|
||||
+ //
|
||||
+ // -Xsycl-target-backend=spir64_gen "-device acm-g10,acm-g11"
|
||||
+ //
|
||||
+ // option.
|
||||
+ if (MatchMagicNumber(std::array{'!', '<', 'a', 'r', 'c', 'h', '>', '\n'}))
|
||||
+ return PI_DEVICE_BINARY_TYPE_NATIVE;
|
||||
+
|
||||
return PI_DEVICE_BINARY_TYPE_NONE;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
diff -Naur ffmpeg-clean/configure ffmpeg-dirty/configure
|
||||
--- ffmpeg-clean/configure 2023-02-27 20:43:45.000000000 +0000
|
||||
+++ ffmpeg-dirty/configure 2023-05-25 09:49:24.949566500 +0100
|
||||
@@ -6563,7 +6563,7 @@
|
||||
@@ -6675,7 +6675,7 @@
|
||||
enabled jni && { [ $target_os = "android" ] && check_headers jni.h && enabled pthreads || die "ERROR: jni not found"; }
|
||||
enabled ladspa && require_headers "ladspa.h dlfcn.h"
|
||||
enabled lcms2 && require_pkg_config lcms2 "lcms2 >= 2.13" lcms2.h cmsCreateContext
|
||||
@@ -10,7 +10,7 @@ diff -Naur ffmpeg-clean/configure ffmpeg-dirty/configure
|
||||
enabled libaribb24 && { check_pkg_config libaribb24 "aribb24 > 1.0.3" "aribb24/aribb24.h" arib_instance_new ||
|
||||
{ enabled gpl && require_pkg_config libaribb24 aribb24 "aribb24/aribb24.h" arib_instance_new; } ||
|
||||
die "ERROR: libaribb24 requires version higher than 1.0.3 or --enable-gpl."; }
|
||||
@@ -6654,16 +6654,15 @@
|
||||
@@ -6767,18 +6767,17 @@
|
||||
require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } ||
|
||||
require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; }
|
||||
enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion
|
||||
@@ -18,7 +18,9 @@ diff -Naur ffmpeg-clean/configure ffmpeg-dirty/configure
|
||||
- { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } }
|
||||
+enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version "-DOPJ_STATIC" -lopenjp2
|
||||
enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++"
|
||||
enabled libopenvino && require libopenvino c_api/ie_c_api.h ie_c_api_version -linference_engine_c_api
|
||||
enabled libopenvino && { { check_pkg_config libopenvino openvino openvino/c/openvino.h ov_core_create && enable openvino2; } ||
|
||||
{ check_pkg_config libopenvino openvino c_api/ie_c_api.h ie_c_api_version ||
|
||||
require libopenvino c_api/ie_c_api.h ie_c_api_version -linference_engine_c_api; } }
|
||||
enabled libopus && {
|
||||
enabled libopus_decoder && {
|
||||
- require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create
|
||||
@@ -30,9 +32,9 @@ diff -Naur ffmpeg-clean/configure ffmpeg-dirty/configure
|
||||
}
|
||||
}
|
||||
enabled libplacebo && require_pkg_config libplacebo "libplacebo >= 4.192.0" libplacebo/vulkan.h pl_vulkan_create
|
||||
@@ -6696,8 +6695,8 @@
|
||||
enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit
|
||||
@@ -6812,8 +6811,8 @@
|
||||
enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 2.0.0" libvmaf.h vmaf_init
|
||||
enabled libvmaf && check_pkg_config libvmaf_cuda "libvmaf >= 2.0.0" libvmaf_cuda.h vmaf_cuda_state_init
|
||||
enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
|
||||
-enabled libvorbis && require_pkg_config libvorbis vorbis vorbis/codec.h vorbis_info_init &&
|
||||
- require_pkg_config libvorbisenc vorbisenc vorbis/vorbisenc.h vorbis_encode_init
|
||||
@@ -41,7 +43,7 @@ diff -Naur ffmpeg-clean/configure ffmpeg-dirty/configure
|
||||
|
||||
enabled libvpx && {
|
||||
enabled libvpx_vp8_decoder && {
|
||||
@@ -6724,7 +6723,7 @@
|
||||
@@ -6840,7 +6839,7 @@
|
||||
enabled libwebp && {
|
||||
enabled libwebp_encoder && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion
|
||||
enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; }
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
diff --git a/src/Imath/half.h b/src/Imath/half.h
|
||||
index 84b349ab..828e0d82 100644
|
||||
--- a/src/Imath/half.h
|
||||
+++ b/src/Imath/half.h
|
||||
@@ -328,8 +328,14 @@ imath_half_to_float (imath_half_bits_t h)
|
||||
// other compilers may provide count-leading-zeros primitives,
|
||||
// but we need the community to inform us of the variants
|
||||
uint32_t lc;
|
||||
-# if defined(_MSC_VER) && (_M_IX86 || _M_X64)
|
||||
- lc = __lzcnt (hexpmant);
|
||||
+# if defined(_MSC_VER)
|
||||
+ // The direct intrinsic for this is __lznct, but that is not supported
|
||||
+ // on older x86_64 hardware or ARM. Instead uses the bsr instruction
|
||||
+ // and one additional subtraction. This assumes hexpmant != 0, for 0
|
||||
+ // bsr and lznct would behave differently.
|
||||
+ unsigned long bsr;
|
||||
+ _BitScanReverse (&bsr, hexpmant);
|
||||
+ lc = (31 - bsr);
|
||||
# elif defined(__GNUC__) || defined(__clang__)
|
||||
lc = (uint32_t) __builtin_clz (hexpmant);
|
||||
# else
|
||||
@@ -1,21 +1,6 @@
|
||||
diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
|
||||
--- ispc-1.17.0.org/CMakeLists.txt 2022-01-15 01:35:15 -0700
|
||||
+++ ispc-1.17.0/CMakeLists.txt 2022-02-12 12:44:24 -0700
|
||||
@@ -36,8 +36,12 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
if (UNIX)
|
||||
- set(CMAKE_C_COMPILER "clang")
|
||||
- set(CMAKE_CXX_COMPILER "clang++")
|
||||
+ if (NOT CMAKE_C_COMPILER)
|
||||
+ set(CMAKE_C_COMPILER "clang")
|
||||
+ endif()
|
||||
+ if (NOT CMAKE_CXX_COMPILER)
|
||||
+ set(CMAKE_CXX_COMPILER "clang++")
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
set(PROJECT_NAME ispc)
|
||||
@@ -443,7 +447,7 @@
|
||||
|
||||
# Include directories
|
||||
@@ -25,15 +10,15 @@ diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
|
||||
${XE_DEPS_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
||||
@@ -507,7 +511,7 @@
|
||||
|
||||
# Link against Clang libraries
|
||||
foreach(clangLib ${CLANG_LIBRARY_LIST})
|
||||
- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
|
||||
+ find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
|
||||
list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
|
||||
endforeach()
|
||||
target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
|
||||
@@ -607,7 +607,7 @@
|
||||
NAMES
|
||||
"${CMAKE_STATIC_LIBRARY_PREFIX}${clangLib}${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
clang-cpp
|
||||
- HINTS ${LLVM_LIBRARY_DIRS})
|
||||
+ HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
|
||||
if (NOT ${${clangLib}Path} IN_LIST CLANG_LIBRARY_FULL_PATH_LIST)
|
||||
list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
|
||||
endif()
|
||||
@@ -546,6 +550,29 @@
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
diff -Naur external_levelzero_org/CMakeLists.txt external_levelzero/CMakeLists.txt
|
||||
--- external_levelzero_org/CMakeLists.txt 2022-03-07 13:22:11 -0700
|
||||
+++ external_levelzero/CMakeLists.txt 2022-03-29 13:22:15 -0600
|
||||
@@ -77,9 +77,6 @@
|
||||
#enabling Control Flow Guard
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /guard:cf")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /guard:cf")
|
||||
- # enable Spectre Mitigation
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
|
||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qspectre")
|
||||
@@ -81,13 +81,6 @@ if(MSVC)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /DYNAMICBASE")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DYNAMICBASE")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /guard:cf")
|
||||
- # enable Spectre Mitigation, not supported by clang-cl
|
||||
- if(NOT CMAKE_CXX_COMPILER_ID STREQUAL Clang)
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
|
||||
- endif()
|
||||
- if(NOT CMAKE_C_COMPILER_ID STREQUAL Clang)
|
||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qspectre")
|
||||
- endif()
|
||||
endif()
|
||||
|
||||
#CXX compiler support
|
||||
#CXX compiler support
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
--- a/llvm/lib/Support/Unix/Path.inc 2020-02-17 09:24:26.000000000 +0100
|
||||
+++ b/llvm/lib/Support/Unix/Path.inc 2020-02-17 09:26:25.000000000 +0100
|
||||
@@ -1200,7 +1200,9 @@
|
||||
/// implementation.
|
||||
diff -Naur ll.org/llvm/lib/Support/Unix/Path.inc ll/llvm/lib/Support/Unix/Path.inc
|
||||
--- ll.org/llvm/lib/Support/Unix/Path.inc 2023-08-01 06:41:14.360891600 -0600
|
||||
+++ ll/llvm/lib/Support/Unix/Path.inc 2023-08-01 07:20:02.063130200 -0600
|
||||
@@ -1476,7 +1476,9 @@
|
||||
std::error_code copy_file(const Twine &From, const Twine &To) {
|
||||
uint32_t Flag = COPYFILE_DATA;
|
||||
-#if __has_builtin(__builtin_available) && defined(COPYFILE_CLONE)
|
||||
std::string FromS = From.str();
|
||||
std::string ToS = To.str();
|
||||
-#if __has_builtin(__builtin_available)
|
||||
+ // BLENDER: This optimization makes LLVM not build on older Xcode versions,
|
||||
+ // just disable until everyone has new enough Xcode versions.
|
||||
+#if 0
|
||||
if (__builtin_available(macos 10.12, *)) {
|
||||
bool IsSymlink;
|
||||
if (std::error_code Error = is_symlink_file(From, IsSymlink))
|
||||
// Optimistically try to use clonefile() and handle errors, rather than
|
||||
// calling stat() to see if it'll work.
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff -Naur orig/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake external_materialx/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake
|
||||
--- orig/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake 2022-11-04 14:23:29 -0600
|
||||
+++ external_materialx/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake 2022-11-08 11:58:45 -0700
|
||||
@@ -181,6 +181,9 @@
|
||||
string(REGEX REPLACE "\\\\" "/" PYTHON_SITE_PACKAGES "${PYTHON_SITE_PACKAGES}")
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
+ if(PYTHON_EXECUTABLE MATCHES "_d.exe$")
|
||||
+ set(PYTHON_LIBRARY_SUFFIX ${PYTHON_LIBRARY_SUFFIX}_d)
|
||||
+ endif()
|
||||
set(PYTHON_LIBRARY "${PYTHON_PREFIX}/libs/python${PYTHON_LIBRARY_SUFFIX}.lib")
|
||||
|
||||
# when run in a venv, PYTHON_PREFIX points to it. But the libraries remain in the
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
@echo Setting up environment for MSYS2 MSVC 64-bit...
|
||||
|
||||
@set PATH=%CD%\usr\bin;%cd%\..\..\perl\site\bin;%cd%\..\..\perl\bin;%cd%\..\..\c\bin;%PATH%
|
||||
@set PATH=%CD%\usr\bin;%cd%\..\..\perl\site\bin;%cd%\..\..\perl\perl\bin;%cd%\..\..\c\bin;%PATH%
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
diff --git a/shared/offline_compiler/source/ocloc_fatbinary.cpp b/shared/offline_compiler/source/ocloc_fatbinary.cpp
|
||||
index 98a1c0e..4d9b5b0 100644
|
||||
--- a/shared/offline_compiler/source/ocloc_fatbinary.cpp
|
||||
+++ b/shared/offline_compiler/source/ocloc_fatbinary.cpp
|
||||
@@ -286,7 +286,9 @@ int buildFatBinaryForTarget(int retVal, const std::vector<std::string> &argsCopy
|
||||
productConfig = ProductConfigHelper::parseMajorMinorRevisionValue(argHelper->productConfigHelper->getProductConfigFromDeviceName(product));
|
||||
}
|
||||
|
||||
- fatbinary.appendFileEntry(pointerSize + "." + productConfig, pCompiler->getPackedDeviceBinaryOutput());
|
||||
+ // Storing binaries under the hardware prefix instead of the full architecture version number,
|
||||
+ // as they would otherwise be ignored if they do not fully match that of the execution device.
|
||||
+ fatbinary.appendFileEntry(pointerSize + "." + NEO::hardwarePrefix[argHelper->productConfigHelper->getProductFamilyFromDeviceName(productConfig)], pCompiler->getPackedDeviceBinaryOutput());
|
||||
return retVal;
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
diff -Naur oidn-2.2.0/core/CMakeLists.txt external_openimagedenoise/core/CMakeLists.txt
|
||||
--- oidn-2.2.0/core/CMakeLists.txt 2024-02-01 17:52:16 -0700
|
||||
+++ external_openimagedenoise/core/CMakeLists.txt 2024-02-03 12:41:34 -0700
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
add_library(OpenImageDenoise_core ${OIDN_CORE_LIB_TYPE} ${OIDN_CORE_SOURCES} ${OIDN_RESOURCE_FILE})
|
||||
set_property(TARGET OpenImageDenoise_core PROPERTY VERSION ${PROJECT_VERSION})
|
||||
-
|
||||
+target_compile_definitions(OpenImageDenoise_core PRIVATE SHARED_POSTFIX=\"$<$<CONFIG:Debug>:$<TARGET_PROPERTY:OpenImageDenoise_core,DEBUG_POSTFIX>>\")
|
||||
target_link_libraries(OpenImageDenoise_core
|
||||
PUBLIC
|
||||
OpenImageDenoise_common
|
||||
diff -Naur oidn-2.2.0/core/module.cpp external_openimagedenoise/core/module.cpp
|
||||
--- oidn-2.2.0/core/module.cpp 2024-02-01 17:52:16 -0700
|
||||
+++ external_openimagedenoise/core/module.cpp 2024-02-03 12:41:34 -0700
|
||||
@@ -29,7 +29,7 @@
|
||||
return true; // module already loaded
|
||||
|
||||
// Get the path of the module to load
|
||||
- std::string filename = "OpenImageDenoise_" + name;
|
||||
+ std::string filename = "OpenImageDenoise_" + name + SHARED_POSTFIX;
|
||||
#if defined(_WIN32)
|
||||
filename += ".dll";
|
||||
#else
|
||||
@@ -37,7 +37,8 @@
|
||||
"." + toString(OIDN_VERSION_MINOR) +
|
||||
"." + toString(OIDN_VERSION_PATCH);
|
||||
#if defined(__APPLE__)
|
||||
- filename = "lib" + filename + versionStr + ".dylib";
|
||||
+ // BLENDER: version string is stripped on macOS.
|
||||
+ filename = "lib" + filename + ".dylib";
|
||||
#else
|
||||
filename = "lib" + filename + ".so" + versionStr;
|
||||
#endif
|
||||
diff -Naur oidn-2.2.0/devices/CMakeLists.txt external_openimagedenoise/devices/CMakeLists.txt
|
||||
--- oidn-2.2.0/devices/CMakeLists.txt 2024-02-01 17:52:16 -0700
|
||||
+++ external_openimagedenoise/devices/CMakeLists.txt 2024-02-03 13:10:31 -0700
|
||||
@@ -65,6 +65,7 @@
|
||||
-DOIDN_WARN_AS_ERRORS:BOOL=${OIDN_WARN_AS_ERRORS}
|
||||
-DOIDN_SANITIZER:STRING=${OIDN_SANITIZER}
|
||||
-DOIDN_DEVICE_CUDA_API:STRING=${OIDN_DEVICE_CUDA_API}
|
||||
+ -DPython_EXECUTABLE:STRING=${Python_EXECUTABLE}
|
||||
BUILD_ALWAYS TRUE
|
||||
DEPENDS
|
||||
OpenImageDenoise_core
|
||||
@@ -155,6 +156,8 @@
|
||||
-DOIDN_API_NAMESPACE:STRING=${OIDN_API_NAMESPACE}
|
||||
-DOIDN_WARN_AS_ERRORS:BOOL=${OIDN_WARN_AS_ERRORS}
|
||||
-DOIDN_SANITIZER:STRING=${OIDN_SANITIZER}
|
||||
+ -DPython_EXECUTABLE:STRING=${Python_EXECUTABLE}
|
||||
+ -DCMAKE_DEBUG_POSTFIX:STRING=${CMAKE_DEBUG_POSTFIX}
|
||||
BUILD_ALWAYS TRUE
|
||||
DEPENDS
|
||||
OpenImageDenoise_core
|
||||
diff --git a/devices/hip/hip_device.cpp b/devices/hip/hip_device.cpp
|
||||
index ae14ced..a49e131 100644
|
||||
--- a/devices/hip/hip_device.cpp
|
||||
+++ b/devices/hip/hip_device.cpp
|
||||
@@ -93,10 +93,16 @@ OIDN_NAMESPACE_BEGIN
|
||||
{
|
||||
const std::string name = getArchName(prop);
|
||||
|
||||
+ // BLENDER: this comment is meant to generate a merge conflict if the code
|
||||
+ // here changes, so we know that hipSupportsDeviceOIDN should be updated.
|
||||
if (name == "gfx1030")
|
||||
return HIPArch::DL;
|
||||
+ // BLENDER: this comment is meant to generate a merge conflict if the code
|
||||
+ // here changes, so we know that hipSupportsDeviceOIDN should be updated.
|
||||
if (name == "gfx1100" || name == "gfx1101" || name == "gfx1102")
|
||||
return HIPArch::WMMA;
|
||||
+ // BLENDER: this comment is meant to generate a merge conflict if the code
|
||||
+ // here changes, so we know that hipSupportsDeviceOIDN should be updated.
|
||||
else
|
||||
return HIPArch::Unknown;
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/libOpenImageIO/exif.cpp b/src/libOpenImageIO/exif.cpp
|
||||
index 90eaaec6e9..1fbf04140e 100644
|
||||
--- a/src/libOpenImageIO/exif.cpp
|
||||
+++ b/src/libOpenImageIO/exif.cpp
|
||||
@@ -1302,6 +1302,8 @@ encode_exif(const ImageSpec& spec, std::vector<char>& blob,
|
||||
TIFFHeader head;
|
||||
head.tiff_magic = (endianreq == endian::little) ? 0x4949 : 0x4d4d;
|
||||
head.tiff_version = 42;
|
||||
+ if (endianreq != endian::native)
|
||||
+ swap_endian(&head.tiff_version);
|
||||
// N.B. need to swap_endian head.tiff_diroff below, once we know the sizes
|
||||
append(blob, head);
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/png.imageio/pngoutput.cpp b/src/png.imageio/pngoutput.cpp
|
||||
index cc694f5a..f752ab7d 100644
|
||||
--- a/src/png.imageio/pngoutput.cpp
|
||||
+++ b/src/png.imageio/pngoutput.cpp
|
||||
@@ -385,7 +385,7 @@ PNGOutput::write_scanlines(int ybegin, int yend, int z, TypeDesc format,
|
||||
unassoc_scratch.reset(new float[nvals]);
|
||||
float* floatvals = unassoc_scratch.get();
|
||||
// Contiguize and convert to float
|
||||
- OIIO::convert_image(m_spec.nchannels, m_spec.width, m_spec.height, 1,
|
||||
+ OIIO::convert_image(m_spec.nchannels, m_spec.width, yend - ybegin, 1,
|
||||
data, format, xstride, ystride, AutoStride,
|
||||
floatvals, TypeFloat, AutoStride, AutoStride,
|
||||
AutoStride);
|
||||
@@ -0,0 +1,28 @@
|
||||
diff --git a/src/include/OpenImageIO/simd.h b/src/include/OpenImageIO/simd.h
|
||||
index f888b29fe..e0cdebdc1 100644
|
||||
--- a/src/include/OpenImageIO/simd.h
|
||||
+++ b/src/include/OpenImageIO/simd.h
|
||||
@@ -46,10 +46,6 @@
|
||||
|
||||
#include <OpenImageIO/detail/fmt.h>
|
||||
|
||||
-// Without SSE, we need to fall back on Imath for matrix44 invert
|
||||
-#if !OIIO_SIMD_SSE
|
||||
-# include <OpenImageIO/Imath.h>
|
||||
-#endif
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@@ -279,6 +275,12 @@
|
||||
#endif
|
||||
|
||||
|
||||
+// Without SSE, we need to fall back on Imath for matrix44 invert
|
||||
+#if !OIIO_SIMD_SSE
|
||||
+# include <OpenImageIO/Imath.h>
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
OIIO_NAMESPACE_BEGIN
|
||||
|
||||
namespace simd {
|
||||
@@ -1,62 +0,0 @@
|
||||
diff -Naur orig/src/idiff/idiff.cpp external_openimageio/src/idiff/idiff.cpp
|
||||
--- orig/src/idiff/idiff.cpp 2023-06-07 07:47:42 -0600
|
||||
+++ external_openimageio/src/idiff/idiff.cpp 2023-06-07 09:46:47 -0600
|
||||
@@ -399,5 +399,6 @@
|
||||
|
||||
imagecache->invalidate_all(true);
|
||||
ImageCache::destroy(imagecache);
|
||||
+ default_thread_pool()->resize(0);
|
||||
return ret;
|
||||
}
|
||||
diff -Naur orig/src/libutil/thread.cpp external_openimageio/src/libutil/thread.cpp
|
||||
--- orig/src/libutil/thread.cpp 2023-06-07 07:47:42 -0600
|
||||
+++ external_openimageio/src/libutil/thread.cpp 2023-06-07 09:45:39 -0600
|
||||
@@ -151,9 +151,10 @@
|
||||
this->set_thread(i);
|
||||
}
|
||||
} else { // the number of threads is decreased
|
||||
+ std::vector<std::unique_ptr<std::thread>> terminating_threads;
|
||||
for (int i = oldNThreads - 1; i >= nThreads; --i) {
|
||||
*this->flags[i] = true; // this thread will finish
|
||||
- this->terminating_threads.push_back(
|
||||
+ terminating_threads.push_back(
|
||||
std::move(this->threads[i]));
|
||||
this->threads.erase(this->threads.begin() + i);
|
||||
}
|
||||
@@ -162,6 +163,11 @@
|
||||
std::unique_lock<std::mutex> lock(this->mutex);
|
||||
this->cv.notify_all();
|
||||
}
|
||||
+ // wait for the terminated threads to finish
|
||||
+ for (auto& thread : terminating_threads) {
|
||||
+ if (thread->joinable())
|
||||
+ thread->join();
|
||||
+ }
|
||||
this->threads.resize(
|
||||
nThreads); // safe to delete because the threads are detached
|
||||
this->flags.resize(
|
||||
@@ -238,16 +244,10 @@
|
||||
if (thread->joinable())
|
||||
thread->join();
|
||||
}
|
||||
- // wait for the terminated threads to finish
|
||||
- for (auto& thread : this->terminating_threads) {
|
||||
- if (thread->joinable())
|
||||
- thread->join();
|
||||
- }
|
||||
// if there were no threads in the pool but some functors in the queue, the functors are not deleted by the threads
|
||||
// therefore delete them here
|
||||
this->clear_queue();
|
||||
this->threads.clear();
|
||||
- this->terminating_threads.clear();
|
||||
this->flags.clear();
|
||||
}
|
||||
|
||||
@@ -349,7 +349,6 @@
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<std::thread>> threads;
|
||||
- std::vector<std::unique_ptr<std::thread>> terminating_threads;
|
||||
std::vector<std::shared_ptr<std::atomic<bool>>> flags;
|
||||
mutable pvt::ThreadsafeQueue<std::function<void(int id)>*> q;
|
||||
std::atomic<bool> isDone;
|
||||
@@ -1,28 +0,0 @@
|
||||
diff --git a/share/cmake/modules/Findpystring.cmake b/share/cmake/modules/Findpystring.cmake
|
||||
index 7b894a45..92618215 100644
|
||||
--- a/share/cmake/modules/Findpystring.cmake
|
||||
+++ b/share/cmake/modules/Findpystring.cmake
|
||||
@@ -113,6 +113,11 @@ if(NOT pystring_FOUND)
|
||||
-DCMAKE_INSTALL_MESSAGE=${CMAKE_INSTALL_MESSAGE}
|
||||
-DCMAKE_INSTALL_PREFIX=${_EXT_DIST_ROOT}
|
||||
-DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX}
|
||||
+ -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
||||
+ -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
|
||||
+ -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}
|
||||
+ -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
|
||||
+ -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
)
|
||||
if(CMAKE_TOOLCHAIN_FILE)
|
||||
set(pystring_CMAKE_ARGS
|
||||
--- a/src/OpenColorIO/FileRules.cpp
|
||||
+++ b/src/OpenColorIO/FileRules.cpp
|
||||
@@ -7,6 +7,9 @@
|
||||
#include <regex>
|
||||
#include <sstream>
|
||||
|
||||
+/* NOTE: this has been applied up-stream, this edit can be removed after upgrading OpenColorIO. */
|
||||
+#include <cstring>
|
||||
+
|
||||
#include <OpenColorIO/OpenColorIO.h>
|
||||
|
||||
#include "CustomKeys.h"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,140 @@
|
||||
diff --git a/openexr_original/cmake/OpenEXRSetup.cmake b/openexr/cmake/OpenEXRSetup.cmake
|
||||
index 425992d..fa80886 100644
|
||||
--- a/openexr_original/cmake/OpenEXRSetup.cmake
|
||||
+++ b/openexr/cmake/OpenEXRSetup.cmake
|
||||
@@ -160,71 +160,79 @@ set(OPENEXR_DEFLATE_TAG "v1.18" CACHE STRING "Tag to use for libdeflate source r
|
||||
if(NOT OPENEXR_FORCE_INTERNAL_DEFLATE)
|
||||
#TODO: ^^ Release should not clone from main, this is a place holder
|
||||
set(CMAKE_IGNORE_PATH "${CMAKE_CURRENT_BINARY_DIR}/_deps/deflate-src/config;${CMAKE_CURRENT_BINARY_DIR}/_deps/deflate-build/config")
|
||||
- include(FindPkgConfig)
|
||||
- pkg_check_modules(deflate IMPORTED_TARGET GLOBAL libdeflate)
|
||||
- set(CMAKE_IGNORE_PATH)
|
||||
- if (deflate_FOUND)
|
||||
- message(STATUS "Using libdeflate from ${deflate_LINK_LIBRARIES}")
|
||||
+ find_package(libdeflate CONFIG)
|
||||
+ if(libdeflate_FOUND)
|
||||
+ message(STATUS "Using libdeflate from ${libdeflate_DIR}")
|
||||
+ else()
|
||||
+ include(FindPkgConfig)
|
||||
+ pkg_check_modules(deflate IMPORTED_TARGET GLOBAL libdeflate)
|
||||
+ set(CMAKE_IGNORE_PATH)
|
||||
+ if (deflate_FOUND)
|
||||
+ message(STATUS "Using libdeflate from ${deflate_LINK_LIBRARIES}")
|
||||
+ endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-if(NOT TARGET PkgConfig::deflate AND NOT deflate_FOUND)
|
||||
- if(OPENEXR_FORCE_INTERNAL_DEFLATE)
|
||||
- message(STATUS "libdeflate forced internal, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
- else()
|
||||
- message(STATUS "libdeflate was not found, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
- endif()
|
||||
- include(FetchContent)
|
||||
- FetchContent_Declare(Deflate
|
||||
- GIT_REPOSITORY "${OPENEXR_DEFLATE_REPO}"
|
||||
- GIT_TAG "${OPENEXR_DEFLATE_TAG}"
|
||||
- GIT_SHALLOW ON
|
||||
- )
|
||||
+if(libdeflate_FOUND)
|
||||
+ set(EXR_DEFLATE_LIB libdeflate::libdeflate_static)
|
||||
+else()
|
||||
+ if(NOT TARGET PkgConfig::deflate AND NOT deflate_FOUND)
|
||||
+ if(OPENEXR_FORCE_INTERNAL_DEFLATE)
|
||||
+ message(STATUS "libdeflate forced internal, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
+ else()
|
||||
+ message(STATUS "libdeflate was not found, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})")
|
||||
+ endif()
|
||||
+ include(FetchContent)
|
||||
+ FetchContent_Declare(Deflate
|
||||
+ GIT_REPOSITORY "${OPENEXR_DEFLATE_REPO}"
|
||||
+ GIT_TAG "${OPENEXR_DEFLATE_TAG}"
|
||||
+ GIT_SHALLOW ON
|
||||
+ )
|
||||
|
||||
- FetchContent_GetProperties(Deflate)
|
||||
- if(NOT Deflate_POPULATED)
|
||||
- FetchContent_Populate(Deflate)
|
||||
- endif()
|
||||
+ FetchContent_GetProperties(Deflate)
|
||||
+ if(NOT Deflate_POPULATED)
|
||||
+ FetchContent_Populate(Deflate)
|
||||
+ endif()
|
||||
|
||||
- # Rather than actually compile something, just embed the sources
|
||||
- # into exrcore. This could in theory cause issues when compiling as
|
||||
- # a static library into another application which also uses
|
||||
- # libdeflate but we switch the export symbol to hidden which should
|
||||
- # hide the symbols when linking...
|
||||
- set(EXR_DEFLATE_SOURCES
|
||||
- lib/arm/cpu_features.c
|
||||
- lib/x86/cpu_features.c
|
||||
- lib/utils.c
|
||||
- lib/deflate_compress.c
|
||||
- lib/deflate_decompress.c
|
||||
- lib/adler32.c
|
||||
- lib/zlib_compress.c
|
||||
- lib/zlib_decompress.c)
|
||||
- # don't need these
|
||||
- # lib/crc32.c
|
||||
- # lib/gzip_compress.c
|
||||
- # lib/gzip_decompress.c
|
||||
- file(READ ${deflate_SOURCE_DIR}/lib/lib_common.h DEFLATE_HIDE)
|
||||
- string(REPLACE "visibility(\"default\")" "visibility(\"hidden\")" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
- string(REPLACE "__declspec(dllexport)" "/**/" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
- file(WRITE ${deflate_SOURCE_DIR}/lib/lib_common.h "${DEFLATE_HIDE}")
|
||||
+ # Rather than actually compile something, just embed the sources
|
||||
+ # into exrcore. This could in theory cause issues when compiling as
|
||||
+ # a static library into another application which also uses
|
||||
+ # libdeflate but we switch the export symbol to hidden which should
|
||||
+ # hide the symbols when linking...
|
||||
+ set(EXR_DEFLATE_SOURCES
|
||||
+ lib/arm/cpu_features.c
|
||||
+ lib/x86/cpu_features.c
|
||||
+ lib/utils.c
|
||||
+ lib/deflate_compress.c
|
||||
+ lib/deflate_decompress.c
|
||||
+ lib/adler32.c
|
||||
+ lib/zlib_compress.c
|
||||
+ lib/zlib_decompress.c)
|
||||
+ # don't need these
|
||||
+ # lib/crc32.c
|
||||
+ # lib/gzip_compress.c
|
||||
+ # lib/gzip_decompress.c
|
||||
+ file(READ ${deflate_SOURCE_DIR}/lib/lib_common.h DEFLATE_HIDE)
|
||||
+ string(REPLACE "visibility(\"default\")" "visibility(\"hidden\")" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
+ string(REPLACE "__declspec(dllexport)" "/**/" DEFLATE_HIDE "${DEFLATE_HIDE}")
|
||||
+ file(WRITE ${deflate_SOURCE_DIR}/lib/lib_common.h "${DEFLATE_HIDE}")
|
||||
|
||||
- # cmake makes fetch content name lowercase for the properties (to deflate)
|
||||
- list(TRANSFORM EXR_DEFLATE_SOURCES PREPEND ${deflate_SOURCE_DIR}/)
|
||||
- set(EXR_DEFLATE_INCLUDE_DIR ${deflate_SOURCE_DIR})
|
||||
- set(EXR_DEFLATE_LIB)
|
||||
-else()
|
||||
- set(EXR_DEFLATE_INCLUDE_DIR)
|
||||
- set(EXR_DEFLATE_LIB ${deflate_LIBRARIES})
|
||||
- # set EXR_DEFATE_LDFLAGS for OpenEXR.pc.in for static build
|
||||
- if (BUILD_SHARED_LIBS)
|
||||
- set(EXR_DEFLATE_LDFLAGS "")
|
||||
+ # cmake makes fetch content name lowercase for the properties (to deflate)
|
||||
+ list(TRANSFORM EXR_DEFLATE_SOURCES PREPEND ${deflate_SOURCE_DIR}/)
|
||||
+ set(EXR_DEFLATE_INCLUDE_DIR ${deflate_SOURCE_DIR})
|
||||
+ set(EXR_DEFLATE_LIB)
|
||||
else()
|
||||
- set(EXR_DEFLATE_LDFLAGS "-l${deflate_LIBRARIES}")
|
||||
+ set(EXR_DEFLATE_INCLUDE_DIR)
|
||||
+ set(EXR_DEFLATE_LIB ${deflate_LIBRARIES})
|
||||
+ # set EXR_DEFATE_LDFLAGS for OpenEXR.pc.in for static build
|
||||
+ if (BUILD_SHARED_LIBS)
|
||||
+ set(EXR_DEFLATE_LDFLAGS "")
|
||||
+ else()
|
||||
+ set(EXR_DEFLATE_LDFLAGS "-l${deflate_LIBRARIES}")
|
||||
+ endif()
|
||||
+ set(EXR_DEFLATE_SOURCES)
|
||||
endif()
|
||||
- set(EXR_DEFLATE_SOURCES)
|
||||
endif()
|
||||
-
|
||||
#######################################
|
||||
# Find or install Imath
|
||||
#######################################
|
||||
@@ -1,7 +1,7 @@
|
||||
diff -Naur orig/CMakeLists.txt external_openimageio/CMakeLists.txt
|
||||
--- orig/CMakeLists.txt 2020-05-10 21:43:52 -0600
|
||||
+++ external_openimageio/CMakeLists.txt 2020-05-13 17:03:35 -0600
|
||||
@@ -170,7 +170,7 @@
|
||||
@@ -237,7 +237,7 @@
|
||||
add_subdirectory (src/iinfo)
|
||||
add_subdirectory (src/maketx)
|
||||
add_subdirectory (src/oiiotool)
|
||||
@@ -13,7 +13,7 @@ diff -Naur orig/CMakeLists.txt external_openimageio/CMakeLists.txt
|
||||
diff -Naur orig/src/cmake/compiler.cmake external_openimageio/src/cmake/compiler.cmake
|
||||
--- orig/src/cmake/compiler.cmake 2020-05-10 21:43:52 -0600
|
||||
+++ external_openimageio/src/cmake/compiler.cmake 2020-05-13 17:02:54 -0600
|
||||
@@ -172,6 +172,7 @@
|
||||
@@ -188,6 +189,7 @@
|
||||
add_definitions (-D_CRT_NONSTDC_NO_WARNINGS)
|
||||
add_definitions (-D_SCL_SECURE_NO_WARNINGS)
|
||||
add_definitions (-DJAS_WIN_MSVC_BUILD)
|
||||
|
||||
@@ -75,40 +75,3 @@ diff -Naur openvdb-8.0.0/openvdb/openvdb/version.rc.in openvdb/openvdb/openvdb/v
|
||||
+
|
||||
+ END
|
||||
+END
|
||||
diff -Naur orig/openvdb/openvdb/tree/ValueAccessor.h openvdb/openvdb/openvdb/tree/ValueAccessor.h
|
||||
--- orig/openvdb/openvdb/tree/ValueAccessor.h 2022-11-02 13:58:26 -0600
|
||||
+++ openvdb/openvdb/openvdb/tree/ValueAccessor.h 2022-11-02 18:55:09 -0600
|
||||
@@ -872,7 +872,10 @@
|
||||
using LeafNodeType = typename NodeType::LeafNodeType;
|
||||
using CoordLimits = std::numeric_limits<Int32>;
|
||||
|
||||
- static_assert(std::is_same<NodeType, LeafNodeType>::value);
|
||||
+ // Blender: Technically not an issue in OpenVDB, but USD 21.11 still builds
|
||||
+ // as C++14 which does not support terse asserts yet. Add a message to
|
||||
+ // explicitly select the C++14 supported static assert.
|
||||
+ static_assert(std::is_same<NodeType, LeafNodeType>::value, "cache item node type is not leaf node type");
|
||||
|
||||
CacheItem(TreeCacheT& parent)
|
||||
: mParent(&parent)
|
||||
diff --git a/nanovdb/nanovdb/NanoVDB.h b/nanovdb/nanovdb/NanoVDB.h
|
||||
index f7fc304..fde5c47 100644
|
||||
--- a/nanovdb/nanovdb/NanoVDB.h
|
||||
+++ b/nanovdb/nanovdb/NanoVDB.h
|
||||
@@ -1877,7 +1877,7 @@ __hostdev__ static inline uint32_t FindLowestOn(uint64_t v)
|
||||
{
|
||||
NANOVDB_ASSERT(v);
|
||||
#if (defined(__CUDA_ARCH__) || defined(__HIP__)) && defined(NANOVDB_USE_INTRINSICS)
|
||||
- return __ffsll(v);
|
||||
+ return __ffsll(static_cast<unsigned long long int>(v));
|
||||
#elif defined(_MSC_VER) && defined(NANOVDB_USE_INTRINSICS)
|
||||
unsigned long index;
|
||||
_BitScanForward64(&index, v);
|
||||
@@ -2592,7 +2592,7 @@ public:
|
||||
///
|
||||
/// @note This method is only defined for IndexGrid = NanoGrid<ValueIndex>
|
||||
template <typename T = BuildType>
|
||||
- __hostdev__ typename enable_if<is_same<T, ValueIndex>::value, uint64_t>::type valueCount() const {return DataType::mData1;}
|
||||
+ __hostdev__ typename enable_if<is_same<T, ValueIndex>::value, const uint64_t&>::type valueCount() const {return DataType::mData1;}
|
||||
|
||||
/// @brief Return a const reference to the tree
|
||||
__hostdev__ const TreeT& tree() const { return *reinterpret_cast<const TreeT*>(this->treePtr()); }
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
diff --git a/openvdb/openvdb/python/pyGrid.h b/openvdb/openvdb/python/pyGrid.h
|
||||
index 9249eaf6d..f4c859110 100644
|
||||
--- a/openvdb/openvdb/python/pyGrid.h
|
||||
+++ b/openvdb/openvdb/python/pyGrid.h
|
||||
@@ -322,7 +322,7 @@ copyToArray(GridType&, const py::object&, py::object)
|
||||
|
||||
#else // if defined(PY_OPENVDB_USE_NUMPY)
|
||||
|
||||
-using ArrayDimVec = std::vector<ssize_t>;
|
||||
+using ArrayDimVec = std::vector<Py_ssize_t>;
|
||||
|
||||
// ID numbers for supported value types
|
||||
enum class DtId { NONE, FLOAT, DOUBLE, BOOL, INT16, INT32, INT64, UINT32, UINT64/*, HALF*/ };
|
||||
@@ -768,12 +768,12 @@ template<typename GridType>
|
||||
inline typename GridType::Ptr
|
||||
meshToLevelSet(py::array_t<float> pointsObj, py::array_t<Index32> trianglesObj, py::array_t<Index32> quadsObj, math::Transform::Ptr xform, float halfWidth)
|
||||
{
|
||||
- auto validate2DArray = [](py::array array, ssize_t N) {
|
||||
+ auto validate2DArray = [](py::array array, Py_ssize_t N) {
|
||||
if (array.ndim() != 2 || array.shape(1) != N) {
|
||||
std::ostringstream os;
|
||||
os << "Expected a 2-dimensional numpy.ndarray with shape(1) = "<< N;
|
||||
os << ", found " << array.ndim() << "-dimensional array with shape = (";
|
||||
- for (ssize_t i = 0; i < array.ndim(); ++i) {
|
||||
+ for (Py_ssize_t i = 0; i < array.ndim(); ++i) {
|
||||
os << array.shape(i);
|
||||
if (i != array.ndim() - 1)
|
||||
os << ", ";
|
||||
@@ -826,12 +826,12 @@ volumeToQuadMesh(const GridType& grid, double isovalue)
|
||||
std::vector<Vec4I> quads;
|
||||
tools::volumeToMesh(grid, points, quads, isovalue);
|
||||
|
||||
- std::vector<ssize_t> shape = { static_cast<ssize_t>(points.size()), 3 };
|
||||
- std::vector<ssize_t> strides = { 3 * static_cast<ssize_t>(sizeof(float)), static_cast<ssize_t>(sizeof(float))};
|
||||
+ std::vector<Py_ssize_t> shape = { static_cast<Py_ssize_t>(points.size()), 3 };
|
||||
+ std::vector<Py_ssize_t> strides = { 3 * static_cast<Py_ssize_t>(sizeof(float)), static_cast<Py_ssize_t>(sizeof(float))};
|
||||
py::array_t<float> pointArrayObj(py::buffer_info(points.data(), sizeof(float), py::format_descriptor<float>::format(), 2, shape, strides));
|
||||
|
||||
- shape = { static_cast<ssize_t>(quads.size()), 4 };
|
||||
- strides = { 4 * static_cast<ssize_t>(sizeof(Index32)), static_cast<ssize_t>(sizeof(Index32))};
|
||||
+ shape = { static_cast<Py_ssize_t>(quads.size()), 4 };
|
||||
+ strides = { 4 * static_cast<Py_ssize_t>(sizeof(Index32)), static_cast<Py_ssize_t>(sizeof(Index32))};
|
||||
py::array_t<Index32> quadArrayObj(py::buffer_info(quads.data(), sizeof(Index32), py::format_descriptor<Index32>::format(), 2, shape, strides));
|
||||
|
||||
return std::make_tuple(pointArrayObj, quadArrayObj);
|
||||
@@ -857,18 +857,18 @@ volumeToMesh(const GridType& grid, double isovalue, double adaptivity)
|
||||
// Create a deep copy of the array (because the point vector will be destroyed
|
||||
// when this function returns).
|
||||
|
||||
- std::vector<ssize_t> shape = { static_cast<ssize_t>(points.size()), 3 };
|
||||
- std::vector<ssize_t> strides = { 3 * static_cast<ssize_t>(sizeof(float)), static_cast<ssize_t>(sizeof(float))};
|
||||
+ std::vector<Py_ssize_t> shape = { static_cast<Py_ssize_t>(points.size()), 3 };
|
||||
+ std::vector<Py_ssize_t> strides = { 3 * static_cast<Py_ssize_t>(sizeof(float)), static_cast<Py_ssize_t>(sizeof(float))};
|
||||
py::buffer_info pointInfo(points.data(), sizeof(float), py::format_descriptor<float>::format(), 2, shape, strides);
|
||||
py::array_t<float> pointArray(pointInfo);
|
||||
|
||||
- shape = { static_cast<ssize_t>(triangles.size()), 3 };
|
||||
- strides = { 3 * static_cast<ssize_t>(sizeof(Index32)), static_cast<ssize_t>(sizeof(Index32))};
|
||||
+ shape = { static_cast<Py_ssize_t>(triangles.size()), 3 };
|
||||
+ strides = { 3 * static_cast<Py_ssize_t>(sizeof(Index32)), static_cast<Py_ssize_t>(sizeof(Index32))};
|
||||
py::buffer_info triangleInfo(triangles.data(), sizeof(Index32), py::format_descriptor<Index32>::format(), 2, shape, strides);
|
||||
py::array_t<Index32> triangleArray(triangleInfo);
|
||||
|
||||
- shape = { static_cast<ssize_t>(quads.size()), 4 };
|
||||
- strides = { 4 * static_cast<ssize_t>(sizeof(Index32)), static_cast<ssize_t>(sizeof(Index32))};
|
||||
+ shape = { static_cast<Py_ssize_t>(quads.size()), 4 };
|
||||
+ strides = { 4 * static_cast<Py_ssize_t>(sizeof(Index32)), static_cast<Py_ssize_t>(sizeof(Index32))};
|
||||
py::buffer_info quadInfo(quads.data(), sizeof(Index32), py::format_descriptor<Index32>::format(), 2, shape, strides);
|
||||
py::array_t<Index32> quadArray(quadInfo);
|
||||
|
||||
@@ -1590,8 +1590,8 @@ exportGrid(py::module_ m)
|
||||
&pyGrid::meshToLevelSet<GridType>,
|
||||
py::arg("points"),
|
||||
#ifdef PY_OPENVDB_USE_NUMPY
|
||||
- py::arg("triangles")=py::array_t<Index32>({ 0, 3 }, { 3 * static_cast<ssize_t>(sizeof(Index32)), static_cast<ssize_t>(sizeof(Index32))} ),
|
||||
- py::arg("quads")=py::array_t<Index32>({ 0, 4 }, { 4 * static_cast<ssize_t>(sizeof(Index32)), static_cast<ssize_t>(sizeof(Index32))} ),
|
||||
+ py::arg("triangles")=py::array_t<Index32>({ 0, 3 }, { 3 * static_cast<Py_ssize_t>(sizeof(Index32)), static_cast<Py_ssize_t>(sizeof(Index32))} ),
|
||||
+ py::arg("quads")=py::array_t<Index32>({ 0, 4 }, { 4 * static_cast<Py_ssize_t>(sizeof(Index32)), static_cast<Py_ssize_t>(sizeof(Index32))} ),
|
||||
#else
|
||||
py::arg("triangles")=std::vector<Index32>(),
|
||||
py::arg("quads")=std::vector<Index32>(),
|
||||
@@ -0,0 +1,21 @@
|
||||
diff --git a/openvdb/openvdb/math/Half.h b/openvdb/openvdb/math/Half.h
|
||||
index b8045ba441..ba72b0e6df 100644
|
||||
--- a/openvdb/openvdb/math/Half.h
|
||||
+++ b/openvdb/openvdb/math/Half.h
|
||||
@@ -342,8 +342,14 @@ imath_half_to_float (imath_half_bits_t h)
|
||||
// other compilers may provide count-leading-zeros primitives,
|
||||
// but we need the community to inform us of the variants
|
||||
uint32_t lc;
|
||||
-# if defined(_MSC_VER) && (_M_IX86 || _M_X64)
|
||||
- lc = __lzcnt (hexpmant);
|
||||
+# if defined(_MSC_VER)
|
||||
+ // The direct intrinsic for this is __lznct, but that is not supported
|
||||
+ // on older x86_64 hardware or ARM. Instead uses the bsr instruction
|
||||
+ // and one additional subtraction. This assumes hexpmant != 0, for 0
|
||||
+ // bsr and lznct would behave differently.
|
||||
+ unsigned long bsr;
|
||||
+ _BitScanReverse (&bsr, hexpmant);
|
||||
+ lc = (31 - bsr);
|
||||
# elif defined(__GNUC__) || defined(__clang__)
|
||||
lc = (uint32_t) __builtin_clz (hexpmant);
|
||||
# else
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,31 +1,3 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index d527232..5ad6eaa 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -99,6 +99,11 @@ set (OSL_PTX_INSTALL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT_NAME}/ptx"
|
||||
CACHE STRING "Directory where OptiX PTX files will be installed")
|
||||
set (CMAKE_DEBUG_POSTFIX "" CACHE STRING "Library naming postfix for Debug builds (e.g., '_debug')")
|
||||
|
||||
+set (USE_OIIO_STATIC ON CACHE BOOL "If OIIO is built static")
|
||||
+if (USE_OIIO_STATIC)
|
||||
+ add_definitions ("-DOIIO_STATIC_BUILD=1")
|
||||
+ add_definitions ("-DOIIO_STATIC_DEFINE=1")
|
||||
+endif ()
|
||||
|
||||
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
||||
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
||||
diff --git a/src/cmake/externalpackages.cmake b/src/cmake/externalpackages.cmake
|
||||
index a7e098b..dad11d0 100644
|
||||
--- a/src/cmake/externalpackages.cmake
|
||||
+++ b/src/cmake/externalpackages.cmake
|
||||
@@ -77,6 +77,7 @@ link_directories ("${Boost_LIBRARY_DIRS}")
|
||||
|
||||
|
||||
checked_find_package (ZLIB REQUIRED) # Needed by several packages
|
||||
+checked_find_package (PNG REQUIRED) # Needed since OIIO needs it
|
||||
|
||||
# IlmBase & OpenEXR
|
||||
checked_find_package (OpenEXR REQUIRED
|
||||
diff --git a/src/liboslcomp/oslcomp.cpp b/src/liboslcomp/oslcomp.cpp
|
||||
index 8c2e77b..211b8a7 100644
|
||||
--- a/src/liboslcomp/oslcomp.cpp
|
||||
@@ -44,70 +16,3 @@ index 8c2e77b..211b8a7 100644
|
||||
#include <clang/Basic/TargetInfo.h>
|
||||
#include <clang/Frontend/CompilerInstance.h>
|
||||
#include <clang/Frontend/TextDiagnosticPrinter.h>
|
||||
diff --git a/src/liboslexec/llvm_instance.cpp b/src/liboslexec/llvm_instance.cpp
|
||||
index 8f52546..8c2d0c7 100644
|
||||
--- a/src/liboslexec/llvm_instance.cpp
|
||||
+++ b/src/liboslexec/llvm_instance.cpp
|
||||
@@ -1363,6 +1363,10 @@ BackendLLVM::run()
|
||||
#ifdef OSL_LLVM_NO_BITCODE
|
||||
OSL_ASSERT(!use_rs_bitcode());
|
||||
ll.module(ll.new_module("llvm_ops"));
|
||||
+ if (use_optix()) {
|
||||
+ ll.module()->setDataLayout("e-i64:64-i128:128-v16:16-v32:32-n16:32:64");
|
||||
+ ll.module()->setTargetTriple("nvptx64-nvidia-cuda");
|
||||
+ }
|
||||
#else
|
||||
if (!use_optix()) {
|
||||
if (use_rs_bitcode()) {
|
||||
diff --git a/src/liboslexec/shadingsys.cpp b/src/liboslexec/shadingsys.cpp
|
||||
index 46e4529..8e86486 100644
|
||||
--- a/src/liboslexec/shadingsys.cpp
|
||||
+++ b/src/liboslexec/shadingsys.cpp
|
||||
@@ -2121,6 +2121,11 @@ ShadingSystemImpl::getattribute(ShaderGroup* group, string_view name,
|
||||
return true;
|
||||
}
|
||||
|
||||
+ if (name == "groupdata_size" && type == TypeDesc::TypeInt) {
|
||||
+ *(int*)val = (int)group->m_llvm_groupdata_size;
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
return false;
|
||||
}
|
||||
|
||||
diff --git a/src/liboslexec/CMakeLists.txt b/src/liboslexec/CMakeLists.txt
|
||||
index 6bb0d175..19f13513 100644
|
||||
--- a/src/liboslexec/CMakeLists.txt
|
||||
+++ b/src/liboslexec/CMakeLists.txt
|
||||
@@ -148,7 +148,9 @@ file (GLOB exec_headers "*.h")
|
||||
file (GLOB compiler_headers "../liboslcomp/*.h")
|
||||
|
||||
FLEX_BISON ( osolex.l osogram.y oso lib_src exec_headers )
|
||||
-FLEX_BISON ( ../liboslcomp/osllex.l ../liboslcomp/oslgram.y osl lib_src compiler_headers )
|
||||
+if (BUILD_SHARED_LIBS)
|
||||
+ FLEX_BISON ( ../liboslcomp/osllex.l ../liboslcomp/oslgram.y osl lib_src compiler_headers )
|
||||
+endif()
|
||||
|
||||
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS" )
|
||||
|
||||
diff --git a/src/include/OSL/mask.h b/src/include/OSL/mask.h
|
||||
index 24197af..b9275f6 100644
|
||||
--- a/src/include/OSL/mask.h
|
||||
+++ b/src/include/OSL/mask.h
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
-#include <immintrin.h>
|
||||
#include <type_traits>
|
||||
|
||||
#include <OSL/oslconfig.h>
|
||||
@@ -23,6 +22,8 @@ using std::countr_zero;
|
||||
|
||||
#elif OSL_INTEL_CLASSIC_COMPILER_VERSION
|
||||
|
||||
+#include <immintrin.h>
|
||||
+
|
||||
OSL_FORCEINLINE int popcount(uint32_t x) noexcept { return _mm_popcnt_u32(x);}
|
||||
OSL_FORCEINLINE int popcount(uint64_t x) noexcept { return _mm_popcnt_u64(x); }
|
||||
OSL_FORCEINLINE int countr_zero(uint32_t x) noexcept { return _bit_scan_forward(x); }
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
diff --git a/tools/FindPythonLibsNew.cmake b/tools/FindPythonLibsNew.cmake
|
||||
index ce558d4ece..104448597f 100644
|
||||
--- a/tools/FindPythonLibsNew.cmake
|
||||
+++ b/tools/FindPythonLibsNew.cmake
|
||||
@@ -172,13 +172,20 @@ _pybind11_get_if_undef(_PYTHON_VALUES 0 _PYTHON_VERSION_LIST)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 1 PYTHON_PREFIX)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 2 PYTHON_INCLUDE_DIR)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 3 PYTHON_SITE_PACKAGES)
|
||||
-_pybind11_get_if_undef(_PYTHON_VALUES 4 PYTHON_MODULE_EXTENSION)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 5 PYTHON_IS_DEBUG)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 6 PYTHON_SIZEOF_VOID_P)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 7 PYTHON_LIBRARY_SUFFIX)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 8 PYTHON_LIBDIR)
|
||||
_pybind11_get_if_undef(_PYTHON_VALUES 9 PYTHON_MULTIARCH)
|
||||
|
||||
+list(GET _PYTHON_VALUES 4 _PYTHON_MODULE_EXT_SUFFIX)
|
||||
+if(PYBIND11_PYTHONLIBS_OVERWRITE OR NOT DEFINED PYTHON_MODULE_DEBUG_POSTFIX)
|
||||
+ get_filename_component(PYTHON_MODULE_DEBUG_POSTFIX "${_PYTHON_MODULE_EXT_SUFFIX}" NAME_WE)
|
||||
+endif()
|
||||
+if(PYBIND11_PYTHONLIBS_OVERWRITE OR NOT DEFINED PYTHON_MODULE_EXTENSION)
|
||||
+ get_filename_component(PYTHON_MODULE_EXTENSION "${_PYTHON_MODULE_EXT_SUFFIX}" EXT)
|
||||
+endif()
|
||||
+
|
||||
# Make sure the Python has the same pointer-size as the chosen compiler
|
||||
# Skip if CMAKE_SIZEOF_VOID_P is not defined
|
||||
# This should be skipped for (non-Apple) cross-compiles (like EMSCRIPTEN)
|
||||
diff --git a/tools/pybind11NewTools.cmake b/tools/pybind11NewTools.cmake
|
||||
index 7d7424a790..07bd2f90eb 100644
|
||||
--- a/tools/pybind11NewTools.cmake
|
||||
+++ b/tools/pybind11NewTools.cmake
|
||||
@@ -95,25 +95,36 @@ endif()
|
||||
|
||||
# Get the suffix - SO is deprecated, should use EXT_SUFFIX, but this is
|
||||
# required for PyPy3 (as of 7.3.1)
|
||||
-if(NOT DEFINED PYTHON_MODULE_EXTENSION)
|
||||
+if(NOT DEFINED PYTHON_MODULE_EXTENSION OR NOT DEFINED PYTHON_MODULE_DEBUG_POSTFIX)
|
||||
execute_process(
|
||||
COMMAND
|
||||
"${${_Python}_EXECUTABLE}" "-c"
|
||||
"import sys, importlib; s = importlib.import_module('distutils.sysconfig' if sys.version_info < (3, 10) else 'sysconfig'); print(s.get_config_var('EXT_SUFFIX') or s.get_config_var('SO'))"
|
||||
- OUTPUT_VARIABLE _PYTHON_MODULE_EXTENSION
|
||||
- ERROR_VARIABLE _PYTHON_MODULE_EXTENSION_ERR
|
||||
+ OUTPUT_VARIABLE _PYTHON_MODULE_EXT_SUFFIX
|
||||
+ ERROR_VARIABLE _PYTHON_MODULE_EXT_SUFFIX_ERR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
- if(_PYTHON_MODULE_EXTENSION STREQUAL "")
|
||||
+ if(_PYTHON_MODULE_EXT_SUFFIX STREQUAL "")
|
||||
message(
|
||||
FATAL_ERROR "pybind11 could not query the module file extension, likely the 'distutils'"
|
||||
- "package is not installed. Full error message:\n${_PYTHON_MODULE_EXTENSION_ERR}")
|
||||
+ "package is not installed. Full error message:\n${_PYTHON_MODULE_EXT_SUFFIX_ERR}"
|
||||
+ )
|
||||
endif()
|
||||
|
||||
# This needs to be available for the pybind11_extension function
|
||||
- set(PYTHON_MODULE_EXTENSION
|
||||
- "${_PYTHON_MODULE_EXTENSION}"
|
||||
- CACHE INTERNAL "")
|
||||
+ if(NOT DEFINED PYTHON_MODULE_DEBUG_POSTFIX)
|
||||
+ get_filename_component(_PYTHON_MODULE_DEBUG_POSTFIX "${_PYTHON_MODULE_EXT_SUFFIX}" NAME_WE)
|
||||
+ set(PYTHON_MODULE_DEBUG_POSTFIX
|
||||
+ "${_PYTHON_MODULE_DEBUG_POSTFIX}"
|
||||
+ CACHE INTERNAL "")
|
||||
+ endif()
|
||||
+
|
||||
+ if(NOT DEFINED PYTHON_MODULE_EXTENSION)
|
||||
+ get_filename_component(_PYTHON_MODULE_EXTENSION "${_PYTHON_MODULE_EXT_SUFFIX}" EXT)
|
||||
+ set(PYTHON_MODULE_EXTENSION
|
||||
+ "${_PYTHON_MODULE_EXTENSION}"
|
||||
+ CACHE INTERNAL "")
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
# Python debug libraries expose slightly different objects before 3.8
|
||||
@@ -251,6 +262,9 @@ endfunction()
|
||||
|
||||
function(pybind11_extension name)
|
||||
# The extension is precomputed
|
||||
- set_target_properties(${name} PROPERTIES PREFIX "" SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
||||
-
|
||||
+ set_target_properties(
|
||||
+ ${name}
|
||||
+ PROPERTIES PREFIX ""
|
||||
+ DEBUG_POSTFIX "${PYTHON_MODULE_DEBUG_POSTFIX}"
|
||||
+ SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
||||
endfunction()
|
||||
diff --git a/tools/pybind11Tools.cmake b/tools/pybind11Tools.cmake
|
||||
index 66ad00a478..874fc39ebb 100644
|
||||
--- a/tools/pybind11Tools.cmake
|
||||
+++ b/tools/pybind11Tools.cmake
|
||||
@@ -65,6 +65,7 @@ _pybind11_promote_to_cache(PYTHON_INCLUDE_DIRS)
|
||||
_pybind11_promote_to_cache(PYTHON_LIBRARIES)
|
||||
_pybind11_promote_to_cache(PYTHON_MODULE_PREFIX)
|
||||
_pybind11_promote_to_cache(PYTHON_MODULE_EXTENSION)
|
||||
+_pybind11_promote_to_cache(PYTHON_MODULE_DEBUG_POSTFIX)
|
||||
_pybind11_promote_to_cache(PYTHON_VERSION_MAJOR)
|
||||
_pybind11_promote_to_cache(PYTHON_VERSION_MINOR)
|
||||
_pybind11_promote_to_cache(PYTHON_VERSION)
|
||||
@@ -148,8 +149,11 @@ endif()
|
||||
|
||||
function(pybind11_extension name)
|
||||
# The prefix and extension are provided by FindPythonLibsNew.cmake
|
||||
- set_target_properties(${name} PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}"
|
||||
- SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
||||
+ set_target_properties(
|
||||
+ ${name}
|
||||
+ PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}"
|
||||
+ DEBUG_POSTFIX "${PYTHON_MODULE_DEBUG_POSTFIX}"
|
||||
+ SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
||||
endfunction()
|
||||
|
||||
# Build a Python extension module:
|
||||
@@ -0,0 +1,49 @@
|
||||
diff --git a/setup.py.orig b/setup.py
|
||||
index a97a755..07ce853 100644
|
||||
--- a/setup.py.orig
|
||||
+++ b/setup.py
|
||||
@@ -2168,7 +2168,7 @@
|
||||
ffi_inc = None
|
||||
print('Header file {} does not exist'.format(ffi_h))
|
||||
if ffi_lib is None and ffi_inc:
|
||||
- for lib_name in ('ffi', 'ffi_pic'):
|
||||
+ for lib_name in ('ffi_pic', ):
|
||||
if (self.compiler.find_library_file(self.lib_dirs, lib_name)):
|
||||
ffi_lib = lib_name
|
||||
break
|
||||
--- a/Modules/posixmodule.c 2022-12-09 21:44:03
|
||||
+++ b/Modules/posixmodule.c 2022-12-09 21:39:46
|
||||
@@ -10564,10 +10564,15 @@
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
#ifdef HAVE_MKFIFOAT
|
||||
if (dir_fd != DEFAULT_DIR_FD) {
|
||||
+// BLENDER: disable also at compile time for compatibility when linking with older Xcode.
|
||||
+// https://github.com/python/cpython/issues/97897
|
||||
+#ifndef __APPLE__
|
||||
if (HAVE_MKFIFOAT_RUNTIME) {
|
||||
result = mkfifoat(dir_fd, path->narrow, mode);
|
||||
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
- } else {
|
||||
mkfifoat_unavailable = 1;
|
||||
result = 0;
|
||||
}
|
||||
@@ -10638,10 +10633,15 @@
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
#ifdef HAVE_MKNODAT
|
||||
if (dir_fd != DEFAULT_DIR_FD) {
|
||||
+// BLENDER: disable also at compile time for compatibility when linking with older Xcode.
|
||||
+// https://github.com/python/cpython/issues/97897
|
||||
+#ifndef __APPLE__
|
||||
if (HAVE_MKNODAT_RUNTIME) {
|
||||
result = mknodat(dir_fd, path->narrow, mode, device);
|
||||
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
- } else {
|
||||
mknodat_unavailable = 1;
|
||||
result = 0;
|
||||
}
|
||||
@@ -2,31 +2,6 @@ diff --git a/setup.py.orig b/setup.py
|
||||
index a97a755..07ce853 100644
|
||||
--- a/setup.py.orig
|
||||
+++ b/setup.py
|
||||
@@ -1603,13 +1603,13 @@
|
||||
version = line.split()[2]
|
||||
break
|
||||
if version >= version_req:
|
||||
- if (self.compiler.find_library_file(self.lib_dirs, 'z')):
|
||||
+ if (self.compiler.find_library_file(self.lib_dirs, 'z_pic')):
|
||||
if MACOS:
|
||||
zlib_extra_link_args = ('-Wl,-search_paths_first',)
|
||||
else:
|
||||
zlib_extra_link_args = ()
|
||||
self.add(Extension('zlib', ['zlibmodule.c'],
|
||||
- libraries=['z'],
|
||||
+ libraries=['z_pic'],
|
||||
extra_link_args=zlib_extra_link_args))
|
||||
have_zlib = True
|
||||
else:
|
||||
@@ -1623,7 +1623,7 @@
|
||||
# crc32 if we have it. Otherwise binascii uses its own.
|
||||
if have_zlib:
|
||||
extra_compile_args = ['-DUSE_ZLIB_CRC32']
|
||||
- libraries = ['z']
|
||||
+ libraries = ['z_pic']
|
||||
extra_link_args = zlib_extra_link_args
|
||||
else:
|
||||
extra_compile_args = []
|
||||
@@ -2168,7 +2168,7 @@
|
||||
ffi_inc = None
|
||||
print('Header file {} does not exist'.format(ffi_h))
|
||||
@@ -36,39 +11,32 @@ index a97a755..07ce853 100644
|
||||
if (self.compiler.find_library_file(self.lib_dirs, lib_name)):
|
||||
ffi_lib = lib_name
|
||||
break
|
||||
--- a/Modules/posixmodule.c 2022-12-09 21:44:03
|
||||
+++ b/Modules/posixmodule.c 2022-12-09 21:39:46
|
||||
@@ -10564,10 +10564,15 @@
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
#ifdef HAVE_MKFIFOAT
|
||||
if (dir_fd != DEFAULT_DIR_FD) {
|
||||
+// BLENDER: disable also at compile time for compatibility when linking with older Xcode.
|
||||
+// https://github.com/python/cpython/issues/97897
|
||||
+#ifndef __APPLE__
|
||||
if (HAVE_MKFIFOAT_RUNTIME) {
|
||||
result = mkfifoat(dir_fd, path->narrow, mode);
|
||||
--- a/configure 2023-12-10 05:22:18.130767840 +0100
|
||||
+++ b/configure 2023-12-10 05:22:05.210521365 +0100
|
||||
@@ -11258,7 +11258,7 @@
|
||||
#define HAVE_LIBDL 1
|
||||
_ACEOF
|
||||
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
- } else {
|
||||
mkfifoat_unavailable = 1;
|
||||
result = 0;
|
||||
}
|
||||
@@ -10638,10 +10633,15 @@
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
#ifdef HAVE_MKNODAT
|
||||
if (dir_fd != DEFAULT_DIR_FD) {
|
||||
+// BLENDER: disable also at compile time for compatibility when linking with older Xcode.
|
||||
+// https://github.com/python/cpython/issues/97897
|
||||
+#ifndef __APPLE__
|
||||
if (HAVE_MKNODAT_RUNTIME) {
|
||||
result = mknodat(dir_fd, path->narrow, mode, device);
|
||||
- LIBS="-ldl $LIBS"
|
||||
+ LIBS="-ldl -lm $LIBS"
|
||||
|
||||
fi
|
||||
# Dynamic linking for SunOS/Solaris and SYSV
|
||||
@@ -23231,7 +23231,7 @@
|
||||
save_LIBS=$LIBS
|
||||
|
||||
|
||||
- LIBS="$LIBS $OPENSSL_LIBS"
|
||||
+ LIBS="$OPENSSL_LIBS $LIBS"
|
||||
CFLAGS="$CFLAGS $OPENSSL_INCLUDES"
|
||||
LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH"
|
||||
|
||||
@@ -23292,7 +23292,7 @@
|
||||
save_LIBS=$LIBS
|
||||
|
||||
|
||||
- LIBS="$LIBS $LIBCRYPTO_LIBS"
|
||||
+ LIBS="$LIBCRYPTO_LIBS $LIBS"
|
||||
CFLAGS="$CFLAGS $OPENSSL_INCLUDES"
|
||||
LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH"
|
||||
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
- } else {
|
||||
mknodat_unavailable = 1;
|
||||
result = 0;
|
||||
}
|
||||
|
||||
@@ -20,18 +20,6 @@
|
||||
+REM %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=ARM64
|
||||
+REM if errorlevel 1 exit /b
|
||||
|
||||
diff -aurw Python-3.10.12/PCbuild/openssl.props external_python/PCbuild/openssl.props
|
||||
--- Python-3.10.12/PCbuild/openssl.props 2023-06-06 16:30:33 -0600
|
||||
+++ external_python/PCbuild/openssl.props 2023-06-20 09:58:57 -0600
|
||||
@@ -10,7 +10,7 @@
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<PropertyGroup>
|
||||
- <_DLLSuffix>-1_1</_DLLSuffix>
|
||||
+ <_DLLSuffix>-3</_DLLSuffix>
|
||||
<_DLLSuffix Condition="$(Platform) == 'ARM'">$(_DLLSuffix)-arm</_DLLSuffix>
|
||||
<_DLLSuffix Condition="$(Platform) == 'ARM64'">$(_DLLSuffix)-arm64</_DLLSuffix>
|
||||
</PropertyGroup>
|
||||
diff -aurw Python-3.10.12/PCbuild/openssl.vcxproj external_python/PCbuild/openssl.vcxproj
|
||||
--- Python-3.10.12/PCbuild/openssl.vcxproj 2023-06-06 16:30:33 -0600
|
||||
+++ external_python/PCbuild/openssl.vcxproj 2023-06-20 08:50:43 -0600
|
||||
@@ -44,16 +32,3 @@ diff -aurw Python-3.10.12/PCbuild/openssl.vcxproj external_python/PCbuild/openss
|
||||
<_Built Include="$(IntDir)\libcrypto.lib;$(IntDir)\libcrypto-*.dll;$(IntDir)\libcrypto-*.pdb" />
|
||||
<_Built Include="$(IntDir)\libssl.lib;$(IntDir)\libssl-*.dll;$(IntDir)\libssl-*.pdb" />
|
||||
<_AppLink Include="$(opensslDir)\ms\applink.c" />
|
||||
diff -aurw Python-3.10.12/PCbuild/regen.targets external_python/PCbuild/regen.targets
|
||||
--- Python-3.10.12/PCbuild/regen.targets 2023-06-06 16:30:33 -0600
|
||||
+++ external_python/PCbuild/regen.targets 2023-06-20 09:37:17 -0600
|
||||
@@ -89,7 +89,7 @@
|
||||
<_LicenseSources Include="$(PySourcePath)LICENSE;
|
||||
$(PySourcePath)PC\crtlicense.txt;
|
||||
$(bz2Dir)LICENSE;
|
||||
- $(opensslOutDir)LICENSE;
|
||||
+ $(opensslOutDir)LICENSE.txt;
|
||||
$(libffiDir)LICENSE;" />
|
||||
<_LicenseSources Include="$(tcltkDir)tcllicense.terms;
|
||||
$(tcltkDir)tklicense.terms;
|
||||
|
||||
|
||||
@@ -99,18 +99,3 @@ diff -Naur orig/pxr/usdImaging/CMakeLists.txt external_usd/pxr/usdImaging/CMakeL
|
||||
plugin
|
||||
)
|
||||
|
||||
diff -Naur orig/cmake/macros/Private.cmake external_usd/cmake/macros/Private.cmake
|
||||
--- orig/cmake/macros/Private.cmake 2022-02-18 14:49:09 -0700
|
||||
+++ external_usd/cmake/macros/Private.cmake 2022-08-05 10:42:03 -0600
|
||||
@@ -900,8 +900,10 @@
|
||||
return()
|
||||
endif()
|
||||
|
||||
- if (WIN32 AND PXR_USE_DEBUG_PYTHON)
|
||||
+ if (WIN32 AND PXR_USE_DEBUG_PYTHON AND NOT CMAKE_DEBUG_POSTFIX)
|
||||
# On Windows when compiling with debug python the library must be named with _d.
|
||||
+ # Blender: but this can be skipped if CMAKE_DEBUG_POSTFIX is set, it knows
|
||||
+ # what it is doing and we don't want libraries ending in _d_d.pyd
|
||||
set(LIBRARY_NAME "_${NAME}_d")
|
||||
else()
|
||||
set(LIBRARY_NAME "_${NAME}")
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
diff --git a/pxr/usd/usdMtlx/reader.cpp b/pxr/usd/usdMtlx/reader.cpp
|
||||
index 29e901816..e6fc68b20 100644
|
||||
--- a/pxr/usd/usdMtlx/reader.cpp
|
||||
+++ b/pxr/usd/usdMtlx/reader.cpp
|
||||
@@ -797,6 +797,15 @@ _NodeGraphBuilder::_CreateInterfaceInputs(
|
||||
// We deliberately ignore tokens here.
|
||||
}
|
||||
|
||||
+mx::StringSet _GetStdlibIncludes() {
|
||||
+ mx::StringSet stdlibIncludes = UsdMtlxGetDocument("")->getReferencedSourceUris();
|
||||
+ mx::StringSet normStdlibIncludes;
|
||||
+ for (std::string const& entry : stdlibIncludes) {
|
||||
+ normStdlibIncludes.insert(TfNormPath(entry));
|
||||
+ }
|
||||
+ return normStdlibIncludes;
|
||||
+}
|
||||
+
|
||||
// Returns True if the mtlxNodeDef corresponds to a locally defined custom node
|
||||
// with an associated nodegraph.
|
||||
// XXX Locally defined custom nodes without nodegraphs are not supported
|
||||
@@ -818,13 +827,14 @@ _NodeGraphBuilder::_IsLocalCustomNode(const mx::ConstNodeDefPtr &mtlxNodeDef)
|
||||
}
|
||||
// Combine with the nodeDef relative path
|
||||
nodeDefUri = TfNormPath(fullMtlxPath + nodeDefUri);
|
||||
+ } else {
|
||||
+ nodeDefUri = TfNormPath(nodeDefUri);
|
||||
}
|
||||
|
||||
// This is a locally defined custom node if the absolute path to the
|
||||
// nodedef is not included in the stdlibDoc.
|
||||
static mx::StringSet customNodeDefNames;
|
||||
- static const mx::StringSet stdlibIncludes =
|
||||
- UsdMtlxGetDocument("")->getReferencedSourceUris();
|
||||
+ static const mx::StringSet stdlibIncludes = _GetStdlibIncludes();
|
||||
if (stdlibIncludes.find(nodeDefUri) == stdlibIncludes.end()) {
|
||||
// Check if we already used this custom node
|
||||
if (std::find(customNodeDefNames.begin(), customNodeDefNames.end(),
|
||||
@@ -1,106 +0,0 @@
|
||||
diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py
|
||||
index cfe243effb..a4bb94eee1 100644
|
||||
--- a/build_scripts/build_usd.py
|
||||
+++ b/build_scripts/build_usd.py
|
||||
@@ -1415,7 +1415,7 @@ def InstallDraco(context, force, buildArgs):
|
||||
############################################################
|
||||
# MaterialX
|
||||
|
||||
-MATERIALX_URL = "https://github.com/materialx/MaterialX/archive/v1.38.4.zip"
|
||||
+MATERIALX_URL = "https://github.com/materialx/MaterialX/archive/v1.38.5.zip"
|
||||
|
||||
def InstallMaterialX(context, force, buildArgs):
|
||||
with CurrentWorkingDirectory(DownloadURL(MATERIALX_URL, context, force)):
|
||||
diff --git a/pxr/imaging/hdSt/materialXShaderGen.cpp b/pxr/imaging/hdSt/materialXShaderGen.cpp
|
||||
index df80ff119f..e4b5f04a73 100644
|
||||
--- a/pxr/imaging/hdSt/materialXShaderGen.cpp
|
||||
+++ b/pxr/imaging/hdSt/materialXShaderGen.cpp
|
||||
@@ -136,8 +136,7 @@ HdStMaterialXShaderGen::HdStMaterialXShaderGen(
|
||||
"st" : mxHdInfo.defaultTexcoordName;
|
||||
|
||||
// Register the customized version of the Surface node generator
|
||||
- registerImplementation("IM_surface_" + GlslShaderGenerator::TARGET,
|
||||
- HdStMaterialXSurfaceNodeGen::create);
|
||||
+ registerImplementation("IM_surface_genglsl", HdStMaterialXSurfaceNodeGen::create);
|
||||
}
|
||||
|
||||
// Based on GlslShaderGenerator::generate()
|
||||
@@ -273,8 +272,7 @@ HdStMaterialXShaderGen::_EmitMxFunctions(
|
||||
mx::ShaderStage& mxStage) const
|
||||
{
|
||||
// Add global constants and type definitions
|
||||
- emitLibraryInclude("stdlib/" + mx::GlslShaderGenerator::TARGET
|
||||
- + "/lib/mx_math.glsl", mxContext, mxStage);
|
||||
+ emitLibraryInclude("stdlib/genglsl/lib/mx_math.glsl", mxContext, mxStage);
|
||||
emitLine("#if NUM_LIGHTS > 0", mxStage, false);
|
||||
emitLine("#define MAX_LIGHT_SOURCES NUM_LIGHTS", mxStage, false);
|
||||
emitLine("#else", mxStage, false);
|
||||
@@ -394,16 +392,24 @@ HdStMaterialXShaderGen::_EmitMxFunctions(
|
||||
emitSpecularEnvironment(mxContext, mxStage);
|
||||
}
|
||||
if (shadowing) {
|
||||
- emitLibraryInclude("pbrlib/" + mx::GlslShaderGenerator::TARGET
|
||||
- + "/lib/mx_shadow.glsl", mxContext, mxStage);
|
||||
+ emitLibraryInclude("pbrlib/genglsl/lib/mx_shadow.glsl", mxContext, mxStage);
|
||||
}
|
||||
|
||||
+#if MATERIALX_MAJOR_VERSION > 1 || \
|
||||
+ (MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION > 38) || \
|
||||
+ (MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION == 38 && MATERIALX_BUILD_VERSION > 4)
|
||||
+ // MaterialX 1.38.5 changes the default transmission method to "refraction".
|
||||
+ mxContext.getOptions().hwTransmissionRenderMethod = mx::TRANSMISSION_OPACITY;
|
||||
+
|
||||
+ // Emit transmission code
|
||||
+ emitTransmissionRender(mxContext, mxStage);
|
||||
+#endif
|
||||
+
|
||||
// Emit directional albedo table code.
|
||||
if (mxContext.getOptions().hwDirectionalAlbedoMethod ==
|
||||
mx::HwDirectionalAlbedoMethod::DIRECTIONAL_ALBEDO_TABLE ||
|
||||
mxContext.getOptions().hwWriteAlbedoTable) {
|
||||
- emitLibraryInclude("pbrlib/" + mx::GlslShaderGenerator::TARGET
|
||||
- + "/lib/mx_table.glsl", mxContext, mxStage);
|
||||
+ emitLibraryInclude("pbrlib/genglsl/lib/mx_table.glsl", mxContext, mxStage);
|
||||
emitLineBreak(mxStage);
|
||||
}
|
||||
|
||||
@@ -421,7 +427,7 @@ HdStMaterialXShaderGen::_EmitMxFunctions(
|
||||
// Emit uv transform code globally if needed.
|
||||
if (mxContext.getOptions().hwAmbientOcclusion) {
|
||||
emitLibraryInclude(
|
||||
- "stdlib/" + mx::GlslShaderGenerator::TARGET + "/lib/" +
|
||||
+ "stdlib/genglsl/lib/" +
|
||||
_tokenSubstitutions[ShaderGenerator::T_FILE_TRANSFORM_UV],
|
||||
mxContext, mxStage);
|
||||
}
|
||||
@@ -490,10 +496,30 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader(
|
||||
// closure/shader nodes and need to be emitted first.
|
||||
emitFunctionCalls(mxGraph, mxContext, mxStage, mx::ShaderNode::Classification::TEXTURE);
|
||||
|
||||
+#if MATERIALX_MAJOR_VERSION == 1 && \
|
||||
+ MATERIALX_MINOR_VERSION == 38 && \
|
||||
+ MATERIALX_BUILD_VERSION <= 4
|
||||
// Emit function calls for all surface shader nodes.
|
||||
// These will internally emit their closure function calls.
|
||||
emitFunctionCalls(mxGraph, mxContext, mxStage, mx::ShaderNode::Classification::SHADER |
|
||||
mx::ShaderNode::Classification::SURFACE);
|
||||
+#else
|
||||
+ // Emit function calls for "root" closure/shader nodes.
|
||||
+ // These will internally emit function calls for any dependent closure nodes upstream.
|
||||
+ for (mx::ShaderGraphOutputSocket* socket : mxGraph.getOutputSockets())
|
||||
+ {
|
||||
+ if (socket->getConnection())
|
||||
+ {
|
||||
+ const mx::ShaderNode* upstream = socket->getConnection()->getNode();
|
||||
+ if (upstream->getParent() == &mxGraph &&
|
||||
+ (upstream->hasClassification(mx::ShaderNode::Classification::CLOSURE) ||
|
||||
+ upstream->hasClassification(mx::ShaderNode::Classification::SHADER)))
|
||||
+ {
|
||||
+ emitFunctionCall(*upstream, mxContext, mxStage);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -0,0 +1,57 @@
|
||||
# SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
# - Find Fribidi library
|
||||
# Find the native fribidi includes and library
|
||||
# This module defines
|
||||
# LIBFRIBIDI_INCLUDE_DIRS, where to find hb.h, Set when
|
||||
# LIBFRIBIDI_INCLUDE_DIR is found.
|
||||
# LIBFRIBIDI_LIBRARIES, libraries to link against to use fribidi.
|
||||
# LIBFRIBIDI_ROOT_DIR, The base directory to search for Fribidi.
|
||||
# This can also be an environment variable.
|
||||
# FRIBIDI_FOUND, If false, do not try to use Fribidi.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# LIBFRIBIDI_LIBRARY, where to find the Fribidi library.
|
||||
|
||||
# If LIBFRIBIDI_ROOT_DIR was defined in the environment, use it.
|
||||
IF(NOT LIBFRIBIDI_ROOT_DIR AND NOT $ENV{LIBFRIBIDI_ROOT_DIR} STREQUAL "")
|
||||
SET(LIBFRIBIDI_ROOT_DIR $ENV{LIBFRIBIDI_ROOT_DIR})
|
||||
ENDIF()
|
||||
|
||||
SET(_fribidi_SEARCH_DIRS
|
||||
${LIBFRIBIDI_ROOT_DIR}
|
||||
)
|
||||
|
||||
FIND_PATH(LIBFRIBIDI_INCLUDE_DIR fribidi/fribidi.h
|
||||
HINTS
|
||||
${_fribidi_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LIBFRIBIDI_LIBRARY
|
||||
NAMES
|
||||
fribidi
|
||||
HINTS
|
||||
${_fribidi_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set FRIBIDI_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Fribidi DEFAULT_MSG
|
||||
LIBFRIBIDI_LIBRARY LIBFRIBIDI_INCLUDE_DIR)
|
||||
|
||||
IF(FRIBIDI_FOUND)
|
||||
SET(LIBFRIBIDI_LIBRARIES ${LIBFRIBIDI_LIBRARY})
|
||||
SET(LIBFRIBIDI_INCLUDE_DIRS ${LIBFRIBIDI_INCLUDE_DIR})
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
LIBFRIBIDI_INCLUDE_DIR
|
||||
LIBFRIBIDI_LIBRARY
|
||||
)
|
||||
@@ -7,16 +7,18 @@
|
||||
# HIP_VERSION, the HIP compiler version
|
||||
# HIP_FOUND, if the HIP toolkit is found.
|
||||
|
||||
if(NOT (DEFINED HIP_ROOT_DIR))
|
||||
set(HIP_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
# If `HIP_ROOT_DIR` was defined in the environment, use it.
|
||||
if(DEFINED HIP_ROOT_DIR AND HIP_ROOT_DIR)
|
||||
if(HIP_ROOT_DIR)
|
||||
# Pass.
|
||||
elseif(DEFINED ENV{HIP_ROOT_DIR})
|
||||
set(HIP_ROOT_DIR $ENV{HIP_ROOT_DIR})
|
||||
elseif(DEFINED ENV{HIP_PATH})
|
||||
# Built-in environment variable from SDK.
|
||||
set(HIP_ROOT_DIR $ENV{HIP_PATH})
|
||||
else()
|
||||
set(HIP_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
set(_hip_SEARCH_DIRS
|
||||
|
||||
@@ -7,16 +7,18 @@
|
||||
# HIPRT_BITCODE, bitcode file with ray-tracing functionality
|
||||
# HIPRT_FOUND, if SDK found
|
||||
|
||||
if(NOT (DEFINED HIPRT_ROOT_DIR))
|
||||
set(HIPRT_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
# If `HIPRT_ROOT_DIR` was defined in the environment, use it.
|
||||
if(DEFINED HIPRT_ROOT_DIR AND HIPRT_ROOT_DIR)
|
||||
if(HIPRT_ROOT_DIR)
|
||||
# Pass.
|
||||
elseif(DEFINED ENV{HIPRT_ROOT_DIR})
|
||||
set(HIPRT_ROOT_DIR $ENV{HIPRT_ROOT_DIR})
|
||||
elseif(DEFINED ENV{HIP_PATH})
|
||||
# Built-in environment variable from SDK.
|
||||
set(HIPRT_ROOT_DIR $ENV{HIP_PATH})
|
||||
else()
|
||||
set(HIPRT_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
set(_hiprt_SEARCH_DIRS
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
# SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
# - Find Harfbuzz library
|
||||
# Find the native harfbuzz includes and library
|
||||
# This module defines
|
||||
# LIBHARFBUZZ_INCLUDE_DIRS, where to find hb.h, Set when
|
||||
# LIBHARFBUZZ_INCLUDE_DIR is found.
|
||||
# LIBHARFBUZZ_LIBRARIES, libraries to link against to use harfbuzz.
|
||||
# LIBHARFBUZZ_ROOT_DIR, The base directory to search for Harfbuzz.
|
||||
# This can also be an environment variable.
|
||||
# HARFBUZZ_FOUND, If false, do not try to use Harfbuzz.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# LIBHARFBUZZ_LIBRARY, where to find the Harfbuzz library.
|
||||
|
||||
# If LIBHARFBUZZ_ROOT_DIR was defined in the environment, use it.
|
||||
IF(NOT LIBHARFBUZZ_ROOT_DIR AND NOT $ENV{LIBHARFBUZZ_ROOT_DIR} STREQUAL "")
|
||||
SET(LIBHARFBUZZ_ROOT_DIR $ENV{LIBHARFBUZZ_ROOT_DIR})
|
||||
ENDIF()
|
||||
|
||||
SET(_harfbuzz_SEARCH_DIRS
|
||||
${LIBHARFBUZZ_ROOT_DIR}
|
||||
)
|
||||
|
||||
FIND_PATH(LIBHARFBUZZ_INCLUDE_DIR harfbuzz/hb.h
|
||||
HINTS
|
||||
${_harfbuzz_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LIBHARFBUZZ_LIBRARY
|
||||
NAMES
|
||||
harfbuzz
|
||||
HINTS
|
||||
${_harfbuzz_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set HARFBUZZ_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Harfbuzz DEFAULT_MSG
|
||||
LIBHARFBUZZ_LIBRARY LIBHARFBUZZ_INCLUDE_DIR)
|
||||
|
||||
IF(HARFBUZZ_FOUND)
|
||||
SET(LIBHARFBUZZ_LIBRARIES ${LIBHARFBUZZ_LIBRARY})
|
||||
SET(LIBHARFBUZZ_INCLUDE_DIRS ${LIBHARFBUZZ_INCLUDE_DIR})
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
LIBHARFBUZZ_INCLUDE_DIR
|
||||
LIBHARFBUZZ_LIBRARY
|
||||
)
|
||||
@@ -174,9 +174,9 @@ if(OPENEXR_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
||||
endif()
|
||||
|
||||
if(OPENEXR_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
||||
set(IMATH_LIBRARIES ${IMATH_LIBRARY})
|
||||
set(IMATH_LIBRARIES ${IMATH_LIBRARY})
|
||||
else()
|
||||
set(IMATH_LIBRARIES ${OPENEXR_IMATH_LIBRARY})
|
||||
set(IMATH_LIBRARIES ${OPENEXR_IMATH_LIBRARY})
|
||||
endif()
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set OPENEXR_FOUND to TRUE if
|
||||
@@ -199,6 +199,9 @@ if(OPENEXR_FOUND)
|
||||
${IMATH_INCLUDE_DIR}
|
||||
${IMATH_INCLUDE_DIR}/Imath)
|
||||
endif()
|
||||
|
||||
set(IMATH_INCLUDE_DIRS
|
||||
${IMATH_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# This can also be an environment variable.
|
||||
# OPENIMAGEIO_FOUND, If false, do not try to use OpenImageIO.
|
||||
# OPENIMAGEIO_PUGIXML_FOUND, Indicates whether OIIO has biltin PuguXML parser.
|
||||
# OPENIMAGEIO_IDIFF, full path to idiff application if found.
|
||||
# OPENIMAGEIO_TOOL, full path to oiiotool application if found.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# OPENIMAGEIO_LIBRARY, where to find the OpenImageIO library.
|
||||
@@ -51,9 +51,9 @@ find_library(OPENIMAGEIO_LIBRARY
|
||||
|
||||
set(_openimageio_LIBRARIES ${OPENIMAGEIO_LIBRARY})
|
||||
|
||||
find_file(OPENIMAGEIO_IDIFF
|
||||
find_file(OPENIMAGEIO_TOOL
|
||||
NAMES
|
||||
idiff
|
||||
oiiotool
|
||||
HINTS
|
||||
${_openimageio_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
@@ -115,7 +115,7 @@ mark_as_advanced(
|
||||
OPENIMAGEIO_INCLUDE_DIR
|
||||
OPENIMAGEIO_LIBRARY
|
||||
OPENIMAGEIO_UTIL_LIBRARY
|
||||
OPENIMAGEIO_IDIFF
|
||||
OPENIMAGEIO_TOOL
|
||||
)
|
||||
|
||||
unset(_openimageio_SEARCH_DIRS)
|
||||
|
||||
@@ -11,13 +11,15 @@
|
||||
# This can also be an environment variable.
|
||||
# OPTIX_FOUND, If false, do not try to use OptiX.
|
||||
|
||||
if(NOT (DEFINED OPTIX_ROOT_DIR))
|
||||
set(OPTIX_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
# If `OPTIX_ROOT_DIR` was defined in the environment, use it.
|
||||
if(DEFINED OPTIX_ROOT_DIR AND OPTIX_ROOT_DIR)
|
||||
if(OPTIX_ROOT_DIR)
|
||||
# Pass.
|
||||
elseif(DEFINED ENV{OPTIX_ROOT_DIR})
|
||||
set(OPTIX_ROOT_DIR $ENV{OPTIX_ROOT_DIR})
|
||||
else()
|
||||
set(OPTIX_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
set(_optix_SEARCH_DIRS
|
||||
|
||||
@@ -36,7 +36,8 @@ else()
|
||||
set(PYTHON_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
set(_PYTHON_VERSION_SUPPORTED 3.10)
|
||||
set(_PYTHON_VERSION_SUPPORTED 3.11)
|
||||
|
||||
set(PYTHON_VERSION ${_PYTHON_VERSION_SUPPORTED} CACHE STRING "Python Version (major and minor only)")
|
||||
mark_as_advanced(PYTHON_VERSION)
|
||||
|
||||
|
||||
@@ -12,12 +12,14 @@
|
||||
# This can also be an environment variable.
|
||||
# SYCL_FOUND, If false, then don't try to use SYCL.
|
||||
|
||||
if(DEFINED SYCL_ROOT_DIR AND SYCL_ROOT_DIR)
|
||||
if(NOT (DEFINED SYCL_ROOT_DIR))
|
||||
set(SYCL_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
if(SYCL_ROOT_DIR)
|
||||
# Pass.
|
||||
elseif(DEFINED ENV{SYCL_ROOT_DIR} AND NOT $ENV{SYCL_ROOT_DIR} STREQUAL "")
|
||||
set(SYCL_ROOT_DIR $ENV{SYCL_ROOT_DIR})
|
||||
else()
|
||||
set(SYCL_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
set(_sycl_search_dirs
|
||||
|
||||
@@ -26,12 +26,6 @@ set(_shaderc_SEARCH_DIRS
|
||||
${SHADERC_ROOT_DIR}
|
||||
)
|
||||
|
||||
# FIXME: These finder modules typically don't use LIBDIR,
|
||||
# this should be set by `./build_files/cmake/platform/` instead.
|
||||
if(DEFINED LIBDIR)
|
||||
set(_shaderc_SEARCH_DIRS ${_shaderc_SEARCH_DIRS} ${LIBDIR}/shaderc)
|
||||
endif()
|
||||
|
||||
find_path(SHADERC_INCLUDE_DIR
|
||||
NAMES
|
||||
shaderc/shaderc.h
|
||||
|
||||
@@ -26,12 +26,6 @@ set(_vulkan_SEARCH_DIRS
|
||||
${VULKAN_ROOT_DIR}
|
||||
)
|
||||
|
||||
# FIXME: These finder modules typically don't use LIBDIR,
|
||||
# this should be set by `./build_files/cmake/platform/` instead.
|
||||
if(DEFINED LIBDIR)
|
||||
set(_vulkan_SEARCH_DIRS ${_vulkan_SEARCH_DIRS} ${LIBDIR}/vulkan)
|
||||
endif()
|
||||
|
||||
find_path(VULKAN_INCLUDE_DIR
|
||||
NAMES
|
||||
vulkan/vulkan.h
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2014 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
# Inspired on the Testing.cmake from Libmv
|
||||
|
||||
function(GET_BLENDER_TEST_INSTALL_DIR VARIABLE_NAME)
|
||||
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if(GENERATOR_IS_MULTI_CONFIG)
|
||||
string(REPLACE "\${BUILD_TYPE}" "$<CONFIG>" TEST_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
|
||||
else()
|
||||
string(REPLACE "\${BUILD_TYPE}" "" TEST_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
|
||||
endif()
|
||||
set(${VARIABLE_NAME} "${TEST_INSTALL_DIR}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
|
||||
macro(BLENDER_SRC_GTEST_EX)
|
||||
if(WITH_GTESTS)
|
||||
set(options SKIP_ADD_TEST)
|
||||
set(oneValueArgs NAME)
|
||||
set(multiValueArgs SRC EXTRA_LIBS COMMAND_ARGS)
|
||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
|
||||
|
||||
set(TARGET_NAME ${ARG_NAME}_test)
|
||||
get_property(_current_include_directories
|
||||
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
PROPERTY INCLUDE_DIRECTORIES)
|
||||
set(TEST_INC
|
||||
${_current_include_directories}
|
||||
${CMAKE_SOURCE_DIR}/tests/gtests
|
||||
)
|
||||
set(TEST_INC_SYS
|
||||
${GLOG_INCLUDE_DIRS}
|
||||
${GFLAGS_INCLUDE_DIRS}
|
||||
${CMAKE_SOURCE_DIR}/extern/gtest/include
|
||||
${CMAKE_SOURCE_DIR}/extern/gmock/include
|
||||
)
|
||||
unset(_current_include_directories)
|
||||
if(WIN32)
|
||||
set(MANIFEST "${CMAKE_BINARY_DIR}/tests.exe.manifest")
|
||||
else()
|
||||
set(MANIFEST "")
|
||||
endif()
|
||||
|
||||
add_executable(${TARGET_NAME} ${ARG_SRC} ${MANIFEST})
|
||||
setup_platform_linker_flags(${TARGET_NAME})
|
||||
target_compile_definitions(${TARGET_NAME} PRIVATE ${GFLAGS_DEFINES})
|
||||
target_compile_definitions(${TARGET_NAME} PRIVATE ${GLOG_DEFINES})
|
||||
target_include_directories(${TARGET_NAME} PUBLIC "${TEST_INC}")
|
||||
target_include_directories(${TARGET_NAME} SYSTEM PUBLIC "${TEST_INC_SYS}")
|
||||
blender_link_libraries(${TARGET_NAME} "${ARG_EXTRA_LIBS};${PLATFORM_LINKLIBS}")
|
||||
if(WITH_TBB)
|
||||
# Force TBB libraries to be in front of MKL (part of OpenImageDenoise), so
|
||||
# that it is initialized before MKL and static library initialization order
|
||||
# issues are avoided.
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ${TBB_LIBRARIES})
|
||||
if(WITH_OPENIMAGEDENOISE)
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ${OPENIMAGEDENOISE_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE
|
||||
bf_testing_main
|
||||
bf_intern_eigen
|
||||
bf_intern_guardedalloc
|
||||
extern_gtest
|
||||
extern_gmock
|
||||
# Needed for GLOG.
|
||||
${GLOG_LIBRARIES}
|
||||
${GFLAGS_LIBRARIES})
|
||||
|
||||
if(DEFINED PTHREADS_LIBRARIES) # Needed for GLOG.
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ${PTHREADS_LIBRARIES})
|
||||
endif()
|
||||
if(WITH_OPENMP_STATIC)
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ${OpenMP_LIBRARIES})
|
||||
endif()
|
||||
if(UNIX AND NOT APPLE)
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE bf_intern_libc_compat)
|
||||
endif()
|
||||
if(WITH_TBB)
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ${TBB_LIBRARIES})
|
||||
endif()
|
||||
if(WITH_GMP)
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ${GMP_LIBRARIES})
|
||||
endif()
|
||||
|
||||
get_blender_test_install_dir(TEST_INSTALL_DIR)
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY "${TESTS_OUTPUT_DIR}"
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TESTS_OUTPUT_DIR}"
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TESTS_OUTPUT_DIR}")
|
||||
if(NOT ARG_SKIP_ADD_TEST)
|
||||
add_test(
|
||||
NAME ${TARGET_NAME}
|
||||
COMMAND ${TESTS_OUTPUT_DIR}/${TARGET_NAME} ${ARG_COMMAND_ARGS}
|
||||
WORKING_DIRECTORY ${TEST_INSTALL_DIR})
|
||||
|
||||
# Don't fail tests on leaks since these often happen in external libraries
|
||||
# that we can't fix.
|
||||
set_tests_properties(${TARGET_NAME} PROPERTIES
|
||||
ENVIRONMENT LSAN_OPTIONS=exitcode=0:$ENV{LSAN_OPTIONS}
|
||||
)
|
||||
if(WIN32)
|
||||
set_tests_properties(${TARGET_NAME} PROPERTIES ENVIRONMENT "PATH=${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/blender.shared/;$ENV{PATH}")
|
||||
endif()
|
||||
endif()
|
||||
if(WIN32)
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES VS_GLOBAL_VcpkgEnabled "false")
|
||||
endif()
|
||||
unset(MANIFEST)
|
||||
unset(TEST_INC)
|
||||
unset(TEST_INC_SYS)
|
||||
unset(TARGET_NAME)
|
||||
endif()
|
||||
endmacro()
|
||||
@@ -27,7 +27,7 @@ CHECKER_IGNORE_PREFIX = [
|
||||
|
||||
# To add files use a relative path.
|
||||
CHECKER_EXCLUDE_SOURCE_FILES = set(os.path.join(*f.split("/")) for f in (
|
||||
# "source/blender/example.c",
|
||||
"source/blender/draw/engines/eevee_next/eevee_lut.cc",
|
||||
))
|
||||
|
||||
CHECKER_ARGS = [
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#
|
||||
|
||||
set(WITH_ASSERT_ABORT ON CACHE BOOL "" FORCE)
|
||||
set(WITH_ASSERT_RELEASE ON CACHE BOOL "" FORCE)
|
||||
set(WITH_BUILDINFO OFF CACHE BOOL "" FORCE)
|
||||
# Sadly ASAN is more often broken than working with MSVC do not enable it in the
|
||||
# developer profile for now.
|
||||
@@ -19,6 +20,7 @@ endif()
|
||||
set(WITH_CYCLES_NATIVE_ONLY ON CACHE BOOL "" FORCE)
|
||||
set(WITH_DOC_MANPAGE OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_GTESTS ON CACHE BOOL "" FORCE)
|
||||
set(WITH_GPU_RENDER_TESTS_SILENT OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV_SCHUR_SPECIALIZATIONS OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_PYTHON_SAFETY ON CACHE BOOL "" FORCE)
|
||||
if(WIN32)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# assumes you have dependencies installed already
|
||||
|
||||
# See this page for more info:
|
||||
# https://wiki.blender.org/wiki/Building_Blender/Linux/Generic_Distro/CMake
|
||||
# https://developer.blender.org/docs/handbook/building_blender/linux/
|
||||
|
||||
# grab blender
|
||||
mkdir ~/blender-git
|
||||
|
||||
+29
-165
@@ -223,6 +223,20 @@ function(blender_target_include_dirs_sys
|
||||
blender_target_include_dirs_impl(${target} TRUE "${_ALL_INCS}")
|
||||
endfunction()
|
||||
|
||||
# Enable unity build for the given target.
|
||||
function(blender_set_target_unity_build target batch_size)
|
||||
if(WITH_UNITY_BUILD)
|
||||
set_target_properties(${target} PROPERTIES
|
||||
UNITY_BUILD ON
|
||||
UNITY_BUILD_BATCH_SIZE ${batch_size}
|
||||
)
|
||||
if(WITH_NINJA_POOL_JOBS AND NINJA_MAX_NUM_PARALLEL_COMPILE_HEAVY_JOBS)
|
||||
# Unity builds are typically heavy.
|
||||
set_target_properties(${target} PROPERTIES JOB_POOL_COMPILE compile_heavy_job_pool)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Set include paths for header files included with "*.h" syntax.
|
||||
# This enables auto-complete suggestions for user header files on Xcode.
|
||||
# Build process is not affected since the include paths are the same
|
||||
@@ -403,6 +417,11 @@ function(blender_add_lib__impl
|
||||
|
||||
add_library(${name} ${sources})
|
||||
|
||||
# On windows vcpkg goes out of its way to make its libs the preferred
|
||||
# libs, and needs to be explicitly be told not to do that.
|
||||
if(WIN32)
|
||||
set_target_properties(${name} PROPERTIES VS_GLOBAL_VcpkgEnabled "false")
|
||||
endif()
|
||||
blender_target_include_dirs(${name} ${includes})
|
||||
blender_target_include_dirs_sys(${name} ${includes_sys})
|
||||
|
||||
@@ -451,161 +470,6 @@ function(blender_add_lib
|
||||
set_property(GLOBAL APPEND PROPERTY BLENDER_LINK_LIBS ${name})
|
||||
endfunction()
|
||||
|
||||
function(blender_add_test_suite)
|
||||
if(ARGC LESS 1)
|
||||
message(FATAL_ERROR "No arguments supplied to blender_add_test_suite()")
|
||||
endif()
|
||||
|
||||
# Parse the arguments
|
||||
set(oneValueArgs TARGET SUITE_NAME)
|
||||
set(multiValueArgs SOURCES)
|
||||
cmake_parse_arguments(ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
# Figure out the release dir, as some tests need files from there.
|
||||
get_blender_test_install_dir(TEST_INSTALL_DIR)
|
||||
if(APPLE)
|
||||
set(_test_release_dir ${TEST_INSTALL_DIR}/Blender.app/Contents/Resources/${BLENDER_VERSION})
|
||||
else()
|
||||
if(WIN32 OR WITH_INSTALL_PORTABLE)
|
||||
set(_test_release_dir ${TEST_INSTALL_DIR}/${BLENDER_VERSION})
|
||||
else()
|
||||
set(_test_release_dir ${TEST_INSTALL_DIR}/share/blender/${BLENDER_VERSION})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Define a test case with our custom gtest_add_tests() command.
|
||||
include(GTest)
|
||||
gtest_add_tests(
|
||||
TARGET ${ARGS_TARGET}
|
||||
SOURCES "${ARGS_SOURCES}"
|
||||
TEST_PREFIX ${ARGS_SUITE_NAME}
|
||||
WORKING_DIRECTORY "${TEST_INSTALL_DIR}"
|
||||
EXTRA_ARGS
|
||||
--test-assets-dir "${CMAKE_SOURCE_DIR}/../lib/tests"
|
||||
--test-release-dir "${_test_release_dir}"
|
||||
)
|
||||
if(WIN32)
|
||||
set_tests_properties(
|
||||
${ARGS_SUITE_NAME} PROPERTIES
|
||||
ENVIRONMENT "PATH=${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/blender.shared/;$ENV{PATH}"
|
||||
)
|
||||
endif()
|
||||
unset(_test_release_dir)
|
||||
endfunction()
|
||||
|
||||
# Add tests for a Blender library, to be called in tandem with blender_add_lib().
|
||||
# The tests will be part of the blender_test executable (see tests/gtests/runner).
|
||||
function(blender_add_test_lib
|
||||
name
|
||||
sources
|
||||
includes
|
||||
includes_sys
|
||||
library_deps
|
||||
)
|
||||
|
||||
add_cc_flags_custom_test(${name} PARENT_SCOPE)
|
||||
|
||||
# Otherwise external projects will produce warnings that we cannot fix.
|
||||
remove_strict_flags()
|
||||
|
||||
# This duplicates logic that's also in GTestTesting.cmake, macro BLENDER_SRC_GTEST_EX.
|
||||
# TODO(Sybren): deduplicate after the general approach in D7649 has been approved.
|
||||
list(APPEND includes
|
||||
${CMAKE_SOURCE_DIR}/tests/gtests
|
||||
)
|
||||
list(APPEND includes_sys
|
||||
${GLOG_INCLUDE_DIRS}
|
||||
${GFLAGS_INCLUDE_DIRS}
|
||||
${CMAKE_SOURCE_DIR}/extern/gtest/include
|
||||
${CMAKE_SOURCE_DIR}/extern/gmock/include
|
||||
)
|
||||
|
||||
blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
|
||||
|
||||
target_compile_definitions(${name} PRIVATE ${GFLAGS_DEFINES})
|
||||
target_compile_definitions(${name} PRIVATE ${GLOG_DEFINES})
|
||||
|
||||
set_property(GLOBAL APPEND PROPERTY BLENDER_TEST_LIBS ${name})
|
||||
|
||||
blender_add_test_suite(
|
||||
TARGET blender_test
|
||||
SUITE_NAME ${name}
|
||||
SOURCES "${sources}"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
|
||||
# Add tests for a Blender library, to be called in tandem with blender_add_lib().
|
||||
# Test will be compiled into a ${name}_test executable.
|
||||
#
|
||||
# To be used for smaller isolated libraries, that do not have many dependencies.
|
||||
# For libraries that do drag in many other Blender libraries and would create a
|
||||
# very large executable, blender_add_test_lib() should be used instead.
|
||||
function(blender_add_test_executable_impl
|
||||
name
|
||||
add_test_suite
|
||||
sources
|
||||
includes
|
||||
includes_sys
|
||||
library_deps
|
||||
)
|
||||
|
||||
add_cc_flags_custom_test(${name} PARENT_SCOPE)
|
||||
|
||||
## Otherwise external projects will produce warnings that we cannot fix.
|
||||
remove_strict_flags()
|
||||
|
||||
blender_src_gtest_ex(
|
||||
NAME ${name}
|
||||
SRC "${sources}"
|
||||
EXTRA_LIBS "${library_deps}"
|
||||
SKIP_ADD_TEST
|
||||
)
|
||||
if(add_test_suite)
|
||||
blender_add_test_suite(
|
||||
TARGET ${name}_test
|
||||
SUITE_NAME ${name}
|
||||
SOURCES "${sources}"
|
||||
)
|
||||
endif()
|
||||
blender_target_include_dirs(${name}_test ${includes})
|
||||
blender_target_include_dirs_sys(${name}_test ${includes_sys})
|
||||
endfunction()
|
||||
|
||||
function(blender_add_test_executable
|
||||
name
|
||||
sources
|
||||
includes
|
||||
includes_sys
|
||||
library_deps
|
||||
)
|
||||
blender_add_test_executable_impl(
|
||||
"${name}"
|
||||
TRUE
|
||||
"${sources}"
|
||||
"${includes}"
|
||||
"${includes_sys}"
|
||||
"${library_deps}"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
function(blender_add_performancetest_executable
|
||||
name
|
||||
sources
|
||||
includes
|
||||
includes_sys
|
||||
library_deps
|
||||
)
|
||||
blender_add_test_executable_impl(
|
||||
"${name}"
|
||||
FALSE
|
||||
"${sources}"
|
||||
"${includes}"
|
||||
"${includes_sys}"
|
||||
"${library_deps}"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
# Ninja only: assign 'heavy pool' to some targets that are especially RAM-consuming to build.
|
||||
function(setup_heavy_lib_pool)
|
||||
if(WITH_NINJA_POOL_JOBS AND NINJA_MAX_NUM_PARALLEL_COMPILE_HEAVY_JOBS)
|
||||
@@ -745,11 +609,11 @@ macro(remove_c_flag
|
||||
_flag)
|
||||
|
||||
foreach(f ${ARGV})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_MINSIZEREL ${CMAKE_C_FLAGS_MINSIZEREL})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_RELWITHDEBINFO ${CMAKE_C_FLAGS_RELWITHDEBINFO})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||
endforeach()
|
||||
unset(f)
|
||||
endmacro()
|
||||
@@ -758,11 +622,11 @@ macro(remove_cxx_flag
|
||||
_flag)
|
||||
|
||||
foreach(f ${ARGV})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_MINSIZEREL ${CMAKE_CXX_FLAGS_MINSIZEREL})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
|
||||
string(REGEX REPLACE ${f} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
endforeach()
|
||||
unset(f)
|
||||
endmacro()
|
||||
|
||||
@@ -49,18 +49,17 @@ endif()
|
||||
|
||||
if(NOT DEFINED LIBDIR)
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin)
|
||||
set(LIBDIR ${CMAKE_SOURCE_DIR}/lib/macos_x64)
|
||||
else()
|
||||
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin_${CMAKE_OSX_ARCHITECTURES})
|
||||
endif()
|
||||
else()
|
||||
if(FIRST_RUN)
|
||||
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
|
||||
set(LIBDIR ${CMAKE_SOURCE_DIR}/lib/macos_${CMAKE_OSX_ARCHITECTURES})
|
||||
endif()
|
||||
endif()
|
||||
if(NOT EXISTS "${LIBDIR}/")
|
||||
if(NOT EXISTS "${LIBDIR}/.git")
|
||||
message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
|
||||
endif()
|
||||
if(FIRST_RUN)
|
||||
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
|
||||
endif()
|
||||
|
||||
# Avoid searching for headers since this would otherwise override our lib
|
||||
# directory as well as PYTHON_ROOT_DIR.
|
||||
@@ -146,9 +145,16 @@ set(BROTLI_LIBRARIES
|
||||
${LIBDIR}/brotli/lib/libbrotlidec-static.a
|
||||
)
|
||||
|
||||
if(WITH_IMAGE_OPENEXR)
|
||||
find_package(OpenEXR)
|
||||
if(WITH_HARFBUZZ)
|
||||
find_package(Harfbuzz)
|
||||
endif()
|
||||
|
||||
if(WITH_FRIBIDI)
|
||||
find_package(Fribidi)
|
||||
endif()
|
||||
|
||||
# Header dependency of required OpenImageIO.
|
||||
find_package(OpenEXR REQUIRED)
|
||||
add_bundled_libraries(openexr/lib)
|
||||
add_bundled_libraries(imath/lib)
|
||||
|
||||
@@ -321,6 +327,7 @@ endif()
|
||||
if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
||||
find_package(OSL REQUIRED)
|
||||
endif()
|
||||
add_bundled_libraries(osl/lib)
|
||||
|
||||
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
||||
find_package(Embree 3.8.0 REQUIRED)
|
||||
@@ -329,6 +336,7 @@ add_bundled_libraries(embree/lib)
|
||||
|
||||
if(WITH_OPENIMAGEDENOISE)
|
||||
find_package(OpenImageDenoise REQUIRED)
|
||||
add_bundled_libraries(openimagedenoise/lib)
|
||||
endif()
|
||||
|
||||
if(WITH_TBB)
|
||||
@@ -419,9 +427,22 @@ string(APPEND PLATFORM_LINKFLAGS
|
||||
" -Wl,-unexported_symbols_list,'${PLATFORM_SYMBOLS_MAP}'"
|
||||
)
|
||||
|
||||
# Use old, slower linker for now to avoid many linker warnings.
|
||||
if(${XCODE_VERSION} VERSION_GREATER_EQUAL 15.0)
|
||||
string(APPEND PLATFORM_LINKFLAGS " -Wl,-ld_classic")
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||
# Silence "no platform load command found in <static library>, assuming: macOS".
|
||||
string(APPEND PLATFORM_LINKFLAGS " -Wl,-ld_classic")
|
||||
else()
|
||||
# Silence "ld: warning: ignoring duplicate libraries".
|
||||
#
|
||||
# The warning is introduced with Xcode 15 and is triggered when the same library
|
||||
# is passed to the linker ultiple times. This situation could happen with either
|
||||
# cyclic libraries, or some transitive dependencies where CMake might decide to
|
||||
# pass library to the linker multiple times to force it re-scan symbols. It is
|
||||
# not neeed for Xcode linker to ensure all symbols from library are used and it
|
||||
# is corrected in CMake 3.29:
|
||||
# https://gitlab.kitware.com/cmake/cmake/-/issues/25297
|
||||
string(APPEND PLATFORM_LINKFLAGS " -Xlinker -no_warn_duplicate_libraries")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Make stack size more similar to Embree, required for Embree.
|
||||
|
||||
@@ -152,13 +152,9 @@ endif()
|
||||
unset(OSX_SDKROOT)
|
||||
|
||||
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
# M1 chips run Big Sur onwards.
|
||||
set(OSX_MIN_DEPLOYMENT_TARGET 11.00)
|
||||
else()
|
||||
# 10.15 is our min. target, if you use higher sdk, weak linking happens
|
||||
set(OSX_MIN_DEPLOYMENT_TARGET 10.15)
|
||||
endif()
|
||||
# This is our minimum target, if you use higher sdk, weak linking happens
|
||||
# Mainly required because of Metal drivers.
|
||||
set(OSX_MIN_DEPLOYMENT_TARGET 11.2)
|
||||
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "${OSX_MIN_DEPLOYMENT_TARGET}" CACHE STRING "" FORCE)
|
||||
|
||||
|
||||
@@ -104,3 +104,34 @@ if(UNIX AND (NOT APPLE) AND LIBDIR AND (EXISTS ${LIBDIR}))
|
||||
)
|
||||
unset(_libdir_stale)
|
||||
endif()
|
||||
|
||||
# Detect update in 4.1 to shared library OpenImageDenoise and OSL.
|
||||
if(UNIX AND
|
||||
DEFINED OPENIMAGEDENOISE_LIBRARY AND
|
||||
OPENIMAGEDENOISE_LIBRARY MATCHES "libOpenImageDenoise.a$" AND
|
||||
(EXISTS ${LIBDIR}/openimagedenoise/lib/libOpenImageDenoise.so OR
|
||||
EXISTS ${LIBDIR}/openimagedenoise/lib/libOpenImageDenoise.dylib))
|
||||
message(STATUS "Auto updating CMake configuration for dynamic OpenImageDenoise")
|
||||
unset_cache_variables("^OPENIMAGEDENOISE")
|
||||
endif()
|
||||
|
||||
if(UNIX AND
|
||||
DEFINED OSL_OSLCOMP_LIBRARY AND
|
||||
OSL_OSLCOMP_LIBRARY MATCHES "liboslcomp.a$" AND
|
||||
(EXISTS ${LIBDIR}/osl/lib/liboslcomp.so OR
|
||||
EXISTS ${LIBDIR}/osl/lib/liboslcomp.dylib))
|
||||
message(STATUS "Auto updating CMake configuration for dynamic OpenShadingLanguage")
|
||||
unset_cache_variables("^OSL_")
|
||||
endif()
|
||||
|
||||
# Detect Python 3.10 to 3.11 upgrade for Blender 4.1.
|
||||
if(UNIX AND
|
||||
LIBDIR AND
|
||||
EXISTS ${LIBDIR} AND
|
||||
EXISTS ${LIBDIR}/python/bin/python3.11 AND
|
||||
DEFINED PYTHON_VERSION AND
|
||||
PYTHON_VERSION VERSION_LESS "3.11")
|
||||
|
||||
message(STATUS "Auto updating CMake configuration for Python 3.11")
|
||||
unset_cache_variables("^PYTHON_")
|
||||
endif()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user