summaryrefslogtreecommitdiffstats
path: root/platform/osx/detect.py
Commit message (Collapse)AuthorAgeFilesLines
* SCons: Streamline Vulkan buildsystem + fixupsRémi Verschelde2020-02-111-5/+4
| | | | | | | | | | | - Renamed option to `builtin_vulkan`, since that's the name of the library and if we were to add new components, we'd likely use that same option. - Merge `vulkan_loader/SCsub` in `vulkan/SCsub`. - Accordingly, don't use built-in Vulkan headers when not building against the built-in loader library. - Drop Vulkan registry which we don't appear to need currently. - Style and permission fixes.
* Add runtime GLES2 / Vulkan context selection.bruvzg2020-02-111-17/+13
|
* Add static Vulkan loader.bruvzg2020-02-111-6/+23
| | | | | Initial Vulkan support for Windows. Initial Vulkan support for macOS.
* Adds sanitizer options for macOSHaoyu Qiu2020-01-291-0/+18
|
* Fix compilation warnings in macOS build, enable `warnings=extra werror=yes` ↵bruvzg2019-10-241-0/+3
| | | | for macOS CI.
* SCons: Use CPPDEFINES instead of CPPFLAGS for pre-processor definesRémi Verschelde2019-07-031-6/+6
| | | | | | | | It's the recommended way to set those, and is more portable (automatically prepends -D for GCC/Clang and /D for MSVC). We still use CPPFLAGS for some pre-processor flags which are not defines.
* Adding a new Camera Server implementation to Godot.BastiaanOlij2019-06-151-1/+1
| | | | | | This is a new singleton where camera sources such as webcams or cameras on a mobile phone can register themselves with the Server. Other parts of Godot can interact with this to obtain images from the camera as textures. This work includes additions to the Visual Server to use this functionality to present the camera image in the background. This is specifically targetted at AR applications.
* SCons: Always use env.Prepend for CPPPATHRémi Verschelde2019-04-301-1/+1
| | | | | | Include paths are processed from left to right, so we use Prepend to ensure that paths to bundled thirdparty files will have precedence over system paths (e.g. `/usr/include` should have lowest priority).
* SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGSRémi Verschelde2019-04-241-7/+9
| | | | | | | | | | | | | | | | | | | | | | | Many contributors (me included) did not fully understand what CCFLAGS, CXXFLAGS and CPPFLAGS refer to exactly, and were thus not using them in the way they are intended to be. As per the SCons manual: https://www.scons.org/doc/HTML/scons-user/apa.html - CCFLAGS: General options that are passed to the C and C++ compilers. - CFLAGS: General options that are passed to the C compiler (C only; not C++). - CXXFLAGS: General options that are passed to the C++ compiler. By default, this includes the value of $CCFLAGS, so that setting $CCFLAGS affects both C and C++ compilation. - CPPFLAGS: User-specified C preprocessor options. These will be included in any command that uses the C preprocessor, including not just compilation of C and C++ source files [...], but also [...] Fortran [...] and [...] assembly language source file[s]. TL;DR: Compiler options go to CCFLAGS, unless they must be restricted to either C (CFLAGS) or C++ (CXXFLAGS). Preprocessor defines go to CPPFLAGS.
* Using DisplayLink to emulate vsync on OSXBastiaan Olij2019-01-291-1/+1
|
* Don't use -ffast-math or other unsafe math optimizationsHein-Pieter van Braam2019-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Godot supports many different compilers and for production releases we have to support 3 currently: GCC8, Clang6, and MSVC2017. These compilers all do slightly different things with -ffast-math and it is causing issues now. See #24841, #24540, #10758, #10070. And probably other complaints about physics differences between release and release_debug builds. I've done some performance comparisons on Linux x86_64. All tests are ran 20 times. Bunnymark: (higher is better) (bunnies) min max stdev average fast-math 7332 7597 71 7432 this pr 7379 7779 108 7621 (102%) FPBench (gdscript port http://fpbench.org/) (lower is better) (ms) fast-math 15441 16127 192 15764 this pr 15671 16855 326 16001 (99%) Float_add (adding floats in a tight loop) (lower is better) (sec) fast-math 5.49 5.78 0.07 5.65 this pr 5.65 5.90 0.06 5.76 (98%) Float_div (dividing floats in a tight loop) (lower is better) (sec) fast-math 11.70 12.36 0.18 11.99 this pr 11.92 12.32 0.12 12.12 (99%) Float_mul (multiplying floats in a tight loop) (lower is better) (sec) fast-math 11.72 12.17 0.12 11.93 this pr 12.01 12.62 0.17 12.26 (97%) I have also looked at FPS numbers for tps-demo, 3d platformer, 2d platformer, and sponza and could not find any measurable difference. I believe that given the issues and oft-reported (physics) glitches on release builds I believe that the couple of percent of tight-loop floating point performance regression is well worth it. This fixes #24540 and fixes #24841
* SCons: Allow building Mono module with OSXCrossRémi Verschelde2018-12-221-1/+5
| | | | | | | Improve the test logic to only assume that we're building for macOS if OSXCROSS_ROOT is defined *and* we requested p=osx. Supersedes #24480.
* Merge pull request #21339 from Placinta/masterRémi Verschelde2018-11-201-0/+6
|\ | | | | Fix regular macOS build by passing -isysroot to compiler so correct system headers are found
| * Pass -isysroot to compiler / linker when doing a macOS buildAlexandru Croitor2018-08-271-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the compiler would use system headers located at /System/Library/Frameworks, which could result in compilation failures due to the headers not always being up-to-date in regards to the latest installed macOS SDK headers that come with Xcode. Fix the issue by passing the SDK path via the -isysroot option to the compiler and linker invocations. If no custom SDK path is given, the build system queries the SDK path via xcrun --show-sdk-path, which returns something similar to /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/ /Developer/SDKs/MacOSX.sdk/ Querying via xcrun is now also done for iphone (and simulator) platforms as well. Here is an example of a compilation failure message due to outdated headers: platform/osx/os_osx.mm:1421:41: error: use of undeclared identifier 'NSAppKitVersionNumber10_12'; did you mean 'NSAppKitVersionNumber'? if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_12) { ^~~~~~~~~~~~~~~~~~~~~~~~~~ NSAppKitVersionNumber /System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:26:28: note: 'NSAppKitVersionNumber' declared here
* | Dont use equality operators with None singleton in python fileslupoDharkael2018-10-271-1/+1
|/
* change framework name CoreMidi to CoreMIDIPanPan2018-07-261-1/+1
|
* Merge pull request #20154 from marcelofg55/midi_driverRémi Verschelde2018-07-251-2/+2
|\ | | | | Added a new MIDIDriver class
| * Added a new MIDIDriver classMarcelo Fernandez2018-07-211-2/+2
| |
* | -Fix disable_3d flagJuan Linietsky2018-07-211-2/+9
|/ | | | -Add extra flag optimize=[size,speed] to be able to prioritize size
* Tweak some help texts in the build systemHugo Locurcio2018-06-071-2/+2
| | | | | This also removes `unix_global_settings_path` from SConstruct since it is no longer used.
* Fix IPhone and OSX cross compilationFabio Alessandrelli2018-03-281-0/+1
|
* Fix WebM SIMD optimizations on macOS.bruvzg2018-03-011-1/+1
|
* Fix previous commit, "bits" still needed for buildsystemRémi Verschelde2018-02-191-1/+4
|
* OSX: Remove unnecessary bits assignmentRémi Verschelde2018-02-191-4/+1
|
* OSX: Remove support for 32-bit and fat binariesRémi Verschelde2018-02-191-20/+6
| | | | | | Mac OS X is 64-bit only since 10.7 (Lion), which has reached End-Of-Life in October 2014. Therefore it no longer makes sense to support exporting 32-bit binaries for Mac OS X, and we can now default to 64-bit instead of bigger "fat" binaries.
* Fix macOS build after #16092bruvzg2018-01-261-1/+1
|
* Make separate debug symbols opt-inHein-Pieter van Braam2018-01-261-0/+1
| | | | | | | This adds a separate_debug_symbols option to the x11, windows, and osx targets. This will default to adding normal debugging symbols to the artifacts and only splits them when separate_debug_symbols=yes on the Scons command line.
* SCons: Fix usage of LD when we meant LINKRémi Verschelde2018-01-051-2/+2
| | | | | | | Also made LINK and CXXFLAGS configurable as command line options. Note that LINK currently expects the *compiler* that will be used for linking and will call its configured linker behind the scenes (so g++, clang++, etc., not ld.gold). See #15364 for details.
* -Removed OpenMP support, replaced by a custom class.Juan Linietsky2017-12-241-3/+0
| | | | -Disabled Opus, implementation is wrong.
* Do not require OpenMP for non-tools builds (export templates)Rémi Verschelde2017-12-221-1/+1
|
* MacPorts clang version selection, and OpenMP linking fix.bruvzg2017-12-141-9/+9
|
* Adds `macports_clang` build flag to build using clang-5.0 form MacPorts ↵bruvzg2017-12-141-0/+13
| | | | (with OpenMP support).
* Cleanup old references to GLES2 rendererRémi Verschelde2017-11-191-1/+1
| | | | | | | | | There are still some left in the Android Java code, even stuff to swap between GLES1 and GLES2 support from early Godot days... would be good to see some cleanup there too one day. The "graphics/api" option for Android exports is removed, as only GLES 3.0 is supported. It can be readded when GLES 2.0 support comes back. Fixes #13004.
* change matrix and enable caching for Android, iOS and macOS (cross-compile)Rhody Lugo2017-11-131-2/+9
|
* Fix python 3 build in osx-specific platformN0hbdy2017-10-071-1/+1
|
* Merged iphone and osx audio drivers into drivers/coreaudioMarcelo Fernandez2017-09-301-1/+1
|
* Use BoolVariable for third-party options.Elliott Sales de Andrade2017-09-251-1/+1
|
* Use EnumVariable for choice-based build options.Elliott Sales de Andrade2017-09-251-1/+2
|
* Create separate debug info files by defaultHein-Pieter van Braam2017-09-161-1/+10
| | | | | | | | | | | | | | | | | | | | | | Now that we have a built-in stacktrace on a segfault it would be useful to have debug information on debug_release builds so that bugreports can include this information. Without this debug info we will still get function names in the backtrace but not file location. This commit will by default build all targets with minimal debug info and then strip the information into separate files. On MacOS this is a .dSYM file, on Linux/MingW this is a .debug file. MacOSX will automatically load a dSYM file if it exists in its debugger. On Linux/MingW we create a 'gnu debuglink' meaning that gdb and friends will automatically find the debug symbols if they exist. Existing workflow for developers does not change at all, except that we now create two instead of one build artifact by default. This commit also adds a 'debug_symbols' option to X11, MacOS, and MingW targets. The default is 'yes' which corresponds to -g1. The alternatives are 'no' (don't generate debug infos at all) or 'full' which runs with -g2. A target=debug build will now build with -g3.
* Make build scripts Python3 compatibleMatthias Hoelzl2017-08-271-1/+1
| | | | | | | | - The Windows, UWP, Android (on Windows) and Linux builds are tested with Scons 3.0 alpha using Python 3. - OSX and iOS should hopefully work but are not tested since I don't have a Mac. - Builds using SCons 2.5 and Python 2 should not be impacted.
* Allow building fat binaries with osxcrossFabio Alessandrelli2017-08-231-2/+6
|
* Reinit audio device when the system default device changes on OS XMarcelo Fernandez2017-07-161-1/+1
|
* Buildsystem: Improve detect.py readability and fix issuesRémi Verschelde2017-07-011-38/+32
| | | | | | | | | | | | | | | | | | | Tried to organize the configure(env) calls in sections, using the same order for all platforms whenever possible. Apart from cosmetic changes, the following issues were fixed: - Android: cleanup linkage, remove GLESv1_CM and GLESv2 - iPhone: Remove obsolete "ios_gles22_override" option - OSX: * Fix bits detection (default to 64) and remove obsolete "force_64_bits" option (closes #9449) * Make "fat" bits argument explicit - Server: sync with X11 - Windows: clean up old DirectX 9 stuff - X11: * Do not require system OpenSSL for building (closes #9443) * Fix typo'ed use_leak_sanitizer option * Fix .llvm suffix overriding custom extra_suffix
* SCons: Add option to toggle warnings (on by default)Rémi Verschelde2017-03-261-1/+1
| | | | | | | | All the warnings are factored out of the platform-specific files and moved to SConstruct. Will have to check that it does not introduce regressions on some platforms/compilers. (cherry picked from commit 31107daa1a41fe9ab3c7c1868479e78e16848333)
* Add API to access battery power stateJulian Murgia2017-03-041-0/+1
| | | | | | | | | | | | | | Done: - X11, server (tested) - Windows (developed, would be nice to retest) - OSX (not tested) Prepared (not developed): - Android (code is here, but may not compile) - iphone - winrt - bb10 - haiku - javascript
* Set minimum version to 10.9 building OSXBastiaanOlij2016-11-251-0/+2
|
* style: Fix PEP8 blank lines issues in Python filesRémi Verschelde2016-11-011-6/+4
| | | | | | | | | | | Done with `autopep8 --select=E3,W3`, fixes: - E301 - Add missing blank line. - E302 - Add missing 2 blank lines. - E303 - Remove extra blank lines. - E304 - Remove blank line following function decorator. - E309 - Add missing blank line. - W391 - Remove trailing blank lines.
* style: Fix PEP8 whitespace issues in Python filesRémi Verschelde2016-11-011-32/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done with `autopep8 --select=E2,W2`, fixes: - E201 - Remove extraneous whitespace. - E202 - Remove extraneous whitespace. - E203 - Remove extraneous whitespace. - E211 - Remove extraneous whitespace. - E221 - Fix extraneous whitespace around keywords. - E222 - Fix extraneous whitespace around keywords. - E223 - Fix extraneous whitespace around keywords. - E224 - Remove extraneous whitespace around operator. - E225 - Fix missing whitespace around operator. - E226 - Fix missing whitespace around operator. - E227 - Fix missing whitespace around operator. - E228 - Fix missing whitespace around operator. - E231 - Add missing whitespace. - E231 - Fix various deprecated code (via lib2to3). - E241 - Fix extraneous whitespace around keywords. - E242 - Remove extraneous whitespace around operator. - E251 - Remove whitespace around parameter '=' sign. - E261 - Fix spacing after comment hash. - E262 - Fix spacing after comment hash. - E265 - Format block comments. - E271 - Fix extraneous whitespace around keywords. - E272 - Fix extraneous whitespace around keywords. - E273 - Fix extraneous whitespace around keywords. - E274 - Fix extraneous whitespace around keywords. - W291 - Remove trailing whitespace. - W293 - Remove trailing whitespace.
* style: Start applying PEP8 to Python files, indentation issuesRémi Verschelde2016-11-011-59/+59
| | | | | | | | | | | | | | | | | | | Done with `autopep8 --select=E1`, fixes: - E101 - Reindent all lines. - E112 - Fix under-indented comments. - E113 - Fix over-indented comments. - E115 - Fix under-indented comments. - E116 - Fix over-indented comments. - E121 - Fix a badly indented line. - E122 - Fix a badly indented line. - E123 - Fix a badly indented line. - E124 - Fix a badly indented line. - E125 - Fix indentation undistinguish from the next logical line. - E126 - Fix a badly indented line. - E127 - Fix a badly indented line. - E128 - Fix a badly indented line. - E129 - Fix a badly indented line.
* SCons: Use colored output if available, change "colored"->"verbose"Błażej Szczygieł2016-10-171-3/+0
|