Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating FASTBuild from 1.11 to 1.12 #1

Merged
merged 130 commits into from
Feb 27, 2024
Merged

Updating FASTBuild from 1.11 to 1.12 #1

merged 130 commits into from
Feb 27, 2024

Conversation

nievesj
Copy link
Owner

@nievesj nievesj commented Feb 27, 2024

No description provided.

ffulin and others added 30 commits March 11, 2023 15:45
 - github reports that 10.15 is deprecated
 - update to avoid deprecation warnings about the old action using nodejs 12
 - some configuration issues need to be resolved
 - Also activate Thread test that was not enabled
 - use new API where possible
 - trim legacy API to only what remains in use
 - make Thread internally directly use what it needs instead of forwarding to the deprecated API
[Improvement] Cache performance improved slightly for check, store and retrieve operations
[Improvement] Toolchain management performance improved slightly when toolchain changes
[Improvement] Performance of various build steps improved slightly
[Improvement] Database validation improved slightly, reducing startup/shutdown time slightly
 - switch 64bit hashes to xxHash3 which is ~2x-3x faster than xxHash
[Note] DB version changed
[Note] Cache version changed
…ors in the future

 - We keep a pointer to the BFFToken responsible for the creation of the variable
* SetExecutable: preserve existing RW permissions; just add X
* SetReadOnly: when removing the flag, remove W entirely; when adding the flag, only set for USR
* mkdir: Create directories with 0755 permissions
 - seems like either GCC7 or the version of ubuntu used causes the github action to be stuck in queue forever
 - speculative lock acquisition that returns immediately on failure
 - FASTBuild has been an exclusively 64bit process for sometime
 - The processes it can spawn are unaffected
 - use compile built-ins for detection of X64 vs ARM instead of setting those in the bff files
 - this is necessary to allow multiple architectures to be generated in one compiler invocation for OSX Universal Binaries
 - de-duplicate config common to x64 and ARM
…inaries

 - combine existing arm and x64 executables together into universal binaries via new "OSX" targets
 - gated on availability of Clang12 or newer
* Chained ObjectLists now properly handle sub-directories.

* Fix test by increasing number of objects seend and built.
…ability

 - this helps ensure intermittent issues don't impact overall worker pool reliability
 - avoid locking the worker list unnecessarily when not accepting work
ffulin and others added 28 commits December 24, 2023 13:25
 - use new AppendList helper function
 - make check for valid node name use real node name generation function
 - move initialization of some bools to header
 - remove erroneous code comment
 - replace manual iteration with range-based fors
 - replace manual pointer operations with Array::GetIndexOf
 - RemoveDir removes dirs as well as files by default
 - RemoveDir directory berhavior can be controlled with .RemoveDirs and .RemoveRootDir
 - FASTBuild can still be used with old versions, just not built using these versions
 - make Linux more consistent with Windows
 - Remove bad semicolons
 - Fix comment typo
 - precompiled header was included from incorrect directory
 - make OSX/Linux use C++17 for consistency with Windows
 - should only complain about deleting folders that exist and can't be deleted
 - improve -verbose output for directory list node when including dir listings
* `Copy`'s `SourceBasePath` property: it said it was required, but it's optional. The docs also said that the type was`String/ArrayOfStrings`, but it's a `String`.
* `VCXProject` doc fixes:
    * `ProjectFileTypes`:
        * Fix the type from `String or ProjectFileType Structure` to `Array of ProjectFileType Structures`.
        * Edit the example to show setting the property.
    * `ProjectConfigs`: fix the example. The example used `[ ... ]` for an array, which is wrong - that's the syntax for an array. Fix it by switching to `{ ... }`.
    * `Output`: fix the example, which had a misplaced quote.
    * `OutputDirectory`: fix the example, which was missing a quote.
* `XCodeProject`'s `ProjectConfigs` property's example:  the example used `[ ... ]` for an array, which is wrong - that's the syntax for an array. Fix it by switching to `{ ... }`.

Co-authored-by: Harrison Ting <[email protected]>
…ng operations

 - update xxhash 0.8.1 -> 0.8.2
 - c++ was being implied from the unity .cpp name, so fix the unity name to use .c
 - CopyP4ToGit ignores python temp files
 - GenerateIntegrationFiles only writes files that need changes
 - GenerateIntegrationFiles can be run with -check option to report if out-of-date without writing
 - new PrepareRelease script automates the bulk of creating a new release
# Conflicts:
#	.github/actions/DownloadFBuild/action.yml
#	Code/Core/FileIO/FileIO.cpp
#	Code/Core/Mem/Mem.cpp
#	Code/Core/Mem/Mem.h
#	Code/Core/Process/ThreadPool.cpp
#	Code/Tools/FBuild/Documentation/docs/changelog.html
#	Code/Tools/FBuild/Documentation/docs/download.html
#	Code/Tools/FBuild/Documentation/docs/functions/vcxproject.html
#	Code/Tools/FBuild/Documentation/docs/home.html
#	Code/Tools/FBuild/Documentation/docs/options.html
#	Code/Tools/FBuild/FBuildCore/BFF/Functions/FunctionCopy.cpp
#	Code/Tools/FBuild/FBuildCore/FBuildVersion.h
#	Code/Tools/FBuild/FBuildCore/Graph/DirectoryListNode.cpp
#	Code/Tools/FBuild/FBuildCore/Graph/NodeGraph.cpp
#	Code/Tools/FBuild/FBuildCore/Graph/NodeGraph.h
#	Code/Tools/FBuild/FBuildCore/Graph/ObjectListNode.cpp
#	Code/Tools/FBuild/FBuildCore/Graph/ObjectNode.cpp
#	Code/Tools/FBuild/FBuildCore/Graph/RemoveDirNode.cpp
#	Code/Tools/FBuild/FBuildCore/Graph/VCXProjectNode.cpp
#	Code/Tools/FBuild/FBuildCore/Graph/VCXProjectNode.h
#	Code/Tools/FBuild/FBuildCore/Helpers/VSProjectGenerator.cpp
#	Code/Tools/FBuild/FBuildTest/Tests/TestRemoveDir.cpp
#	Code/Tools/FBuild/Integration/notepad++markup.xml
#	Code/Tools/FBuild/Integration/usertype.dat
#	Code/fbuild.bff
#	External/SDK/Clang/Linux/Clang14.bff
#	External/SDK/Clang/Linux/Clang3.bff
#	External/SDK/Clang/OSX/Clang12.bff
#	External/SDK/Clang/Windows/Clang17.bff
#	External/SDK/GCC/Linux/GCC11.bff
#	External/Zstd/Zstd.bff
#	External/xxHash/xxHash.bff
@nievesj nievesj self-assigned this Feb 27, 2024
@nievesj nievesj merged commit 632f083 into main Feb 27, 2024
8 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants