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

Merge latest FastBuild into missmah/fastbuild #1

Open
wants to merge 1,204 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1204 commits
Select commit Hold shift + click to select a range
ed2bbd4
FBuildWorker: Add TrayIcon image for OSX
ffulin Oct 13, 2019
04d6f1b
FBuildWorker: Fix thread safety issues introduced between Worker and …
ffulin Oct 13, 2019
5576101
[Fix][OSX][Linux] FBuildWorker restarts when it detects it has been m…
ffulin Oct 13, 2019
3a3f4ab
FBuildWorker: Fix NSWindow lifecycle problems on OSX
ffulin Oct 13, 2019
c8d3871
Enable MemTracker leak detection for OSX debug builds
ffulin Oct 14, 2019
4e81759
Improve profile output for tests with network connections
ffulin Oct 19, 2019
8b93340
Linux process spawning perf improvements & occasional test failure fix
ffulin Oct 19, 2019
f3d8cd4
Optimize TestTCPConnectionPool
ffulin Oct 20, 2019
6cbaced
[Improvement] Reduce process shutdown time for distributed builds whe…
ffulin Oct 20, 2019
7ce97a8
TCPConnectionPool: Fix Thread Sanitizer warning
ffulin Oct 20, 2019
8063175
Fix TCPConnectionPool shutdown problems:
ffulin Oct 20, 2019
b539fcd
Fix deadlock in TCPConnectionPool::ShutdownAllConnections
ffulin Oct 20, 2019
86f2c05
[Fix][Windows] Network sockets are no longer inherited by child proce…
ffulin Oct 26, 2019
1076390
Atomic: Remove unnecessary ifdef for 32 vs 64 bit Windows
ffulin Oct 26, 2019
b84e2c1
Fix memory leak detection for allocations via new (that should be usi…
ffulin Oct 26, 2019
0703508
TCPConnectionPool: Explicitily set protocol in when creating sockets
ffulin Oct 26, 2019
40c2aa1
Temporarily disable Windows WSA_FLAG_NO_HANDLE_INHERIT fix
ffulin Oct 26, 2019
fb6eaff
Fix VS2019 compilation:
ffulin Oct 26, 2019
d29a0ba
[Fix] Intellisense/CodeSense information is correctly populated if pr…
ffulin Oct 26, 2019
b3081f1
Fix GetRelativePath case sensitivity (#639)
ohoughton Oct 26, 2019
36964e7
Add tests for GetRelativePath function
ffulin Oct 26, 2019
4b79a9f
Fix FBuildWorker startup crash when ASLR is active (when not run from…
ffulin Oct 27, 2019
8c23a97
[Fix] ObjectiveC/C++ distribution is automatically disabled (can't be…
ffulin Oct 27, 2019
e314a6e
Add support for FASTBuild to be built with Clang 9.0.0 on Windows:
ffulin Oct 28, 2019
04e12ea
Switch back to Clang7 for Windows for Travis CI
ffulin Oct 28, 2019
73c9436
Build ObjectiveC++ files in Unity
ffulin Nov 2, 2019
d2a0f8c
[Improvement][OSX] FBuildWorker for OSX supports simple Idle Detection
ffulin Nov 2, 2019
7b00190
Fix TCPConnectionPool profiling helper logic (missing cast before bit…
ffulin Nov 2, 2019
1147d33
Fix some minor warnings raised by PVS Studio
ffulin Nov 2, 2019
8b3d9a4
Delete stale file
ffulin Nov 4, 2019
17ad827
Update documentation/website for v0.99
ffulin Nov 4, 2019
7d0d0d5
v0.99
ffulin Nov 4, 2019
c01458f
Update travis.yml to match dev branch
ffulin Nov 4, 2019
3b3fffc
Delete stale files
ffulin Nov 4, 2019
b92ef3c
Add more special characters to XCodeProjectGenerator (#657)
jblazquez Nov 6, 2019
735ba92
Dependency graph improvements - record stamp per-dependency
ffulin Nov 21, 2019
027d0fe
Make TestObject::ModTimeChangeBackwards more resilient to filesystem …
ffulin Nov 21, 2019
014698e
TestStaleDynamicDeps: Temporarily add back OSX timing delay
ffulin Nov 21, 2019
f37ef92
Fix OSX tests
ffulin Nov 23, 2019
0719112
Implement IsDebuggerAttached for OSX
ffulin Nov 23, 2019
b46ca1e
Improve -verbose output for build reasoning
ffulin Nov 23, 2019
0c89bb5
Improve -verbose output (file missing from previous commit)
ffulin Nov 23, 2019
8b2c038
build fix when "warning C4365: 'initializing': conversion from '__int…
lucianm Nov 27, 2019
4ab76ea
Fix FBuildVersion header that was accidentally submitted wth a previe…
ffulin Nov 27, 2019
c4bc612
Added a new 'ExecAlwaysShowOutput' option to ExecNode (#587)
belkiss Nov 27, 2019
a1846c9
Post-integration cleanup: ExecAlwaysShowOutput
ffulin Nov 27, 2019
91611dc
Add .Environment field for TestNode (#633)
bburgin Nov 27, 2019
3bd7441
Post-intagration: .Environment option added to Test()
ffulin Nov 27, 2019
6623c3b
Require header for CopyDir and RemoveDir (#616)
dummyunit Nov 28, 2019
a2bbba3
"Database has moved" is not an error anymore - it will re-trigger a r…
belkiss Nov 28, 2019
c5b40fa
Post-integration: Allow build after db move with -continueafterdbmove
ffulin Nov 28, 2019
56480c3
inconsistent comment due to copy/paste ? (#665)
lucianm Dec 7, 2019
786ccc4
[Improvement] Warning when retrieving corrupt data from the cache con…
ffulin Dec 10, 2019
4b05a55
Merge branch 'dev' of https://github.com/fastbuild/fastbuild into dev
ffulin Dec 10, 2019
84873ec
[Fix] -fixuperrorpaths no longer mangles "function" level errors when…
ffulin Dec 14, 2019
7296002
Misc code cleanup
ffulin Jan 1, 2020
873176e
Travis CI: update to FASTBuild v0.99
ffulin Jan 1, 2020
c469eaa
Update CopyP4ToGit script [ci skip]
ffulin Jan 1, 2020
e380f77
Delete some stale files
ffulin Jan 1, 2020
a17139c
Improved BFF parsing
ffulin Jan 3, 2020
04a5d5a
BFF Parsing cleanup: Delete BFFIterator - replaced with BFFToken
ffulin Jan 3, 2020
e6d81c5
Fix SmallBlockAllocator regression:
ffulin Jan 3, 2020
ded422d
Fix Error end of line detection for last line in file:
ffulin Jan 3, 2020
523e0e4
TestTCPConnectionPool: Increase test timeout
ffulin Jan 3, 2020
825c050
Cacheplugin: Remove unused 32-bit dll function import code
ffulin Jan 3, 2020
c7952fc
Various BFF Parsing fixes:
ffulin Jan 5, 2020
02129d0
ObjectNode::WriteToCache: Remove unnecessary nullptr check
ffulin Jan 5, 2020
6143fd2
BFF Parsing fixes:
ffulin Jan 7, 2020
c39ba1c
Fix dynamic variables not being handled correctly inside arrays
ffulin Jan 8, 2020
4491509
Fixes MSVC compilation with 14.24.28314 (#682)
fran6co Jan 9, 2020
5c99e4c
Minor whitespace fix
ffulin Jan 9, 2020
739caaf
Switch to VS2019 by default, but keep 2017 used on Travis CI
ffulin Jan 9, 2020
1196e94
Improve "conflicting objects" detection
ffulin Jan 10, 2020
7dc2e0d
Fix bad error output for missing includes
ffulin Jan 10, 2020
3b32214
Update copyright for 2020
ffulin Jan 11, 2020
99c5ee3
Fixes PCH not working properly on MSVC when defining obj file manuall…
fran6co Jan 11, 2020
47d2ae1
Post-intergation cleanup: PCH obj fix
ffulin Jan 11, 2020
814346c
Fix typo in home.html [skip ci]
ffulin Jan 12, 2020
285170c
Fix inconsistent line ending handling in error row/column determination
ffulin Jan 12, 2020
05ddad7
[Fix][Linux][OSX] Fix directory being treated as a file in some situa…
ffulin Jan 12, 2020
6399996
[Improvement] iOS deployment target can be set with XCodeIphoneOSDep…
ffulin Jan 13, 2020
cc29135
Add Array::EmplaceBack
ffulin Jan 18, 2020
a7f7c6a
[Improvement] BFF parsing speed improved slightly by reducing memory …
ffulin Jan 18, 2020
55077f8
Array::Emplace improvements:
ffulin Jan 19, 2020
c792fb0
BFFToken fixes:
ffulin Jan 19, 2020
66b8a3e
Minor documentation fix (#686)
claimred Jan 21, 2020
1354bb7
- Added -debug option in fbuildworker (#569)
belkiss Jan 25, 2020
6d9f5bd
Post Integration: -debug option for FBuildworker
ffulin Jan 25, 2020
b41d723
- Added support for free OS memory detection. If free memory is small…
belkiss Jan 25, 2020
d4b6cb7
Fix OSX and Linux compilation
ffulin Jan 25, 2020
07e2f9c
Post integration: FBuildWorker -minfreememory
ffulin Jan 25, 2020
92e96d2
Add optional command line for the worker: -writeextrainfo (#575)
belkiss Jan 25, 2020
180a5f7
Post-integration: Worker brokerage contains worker info
ffulin Jan 25, 2020
895f767
Allow LinkerAssemblyResources to take the input of an object list nod…
belkiss Jan 25, 2020
b295cf9
Post integration: LinkerAssemblyResources ObjectList fix
ffulin Jan 25, 2020
27fd07f
Change Idle Threshold hardcoded define to a setting in the worker UI …
belkiss Jan 26, 2020
a3a03aa
Post Integration: FBuildWorker "Idle Threshold"
ffulin Jan 26, 2020
0cb4e6d
Add a method for better compression of cache artefacts. (#582)
belkiss Jan 26, 2020
5cd60ce
Cache compression levels can be controlled (-128 to +12) with -cachec…
ffulin Jan 27, 2020
c8ee82e
Only add include if preprocessor included it (#685)
crondog Jan 29, 2020
ae0a17c
- Added support for multiple broker folders separated my semi-colon. …
belkiss Jan 29, 2020
932cfa8
Post integration: Multiple brokerage paths
ffulin Jan 29, 2020
a5c4821
Create a new FDB when there was an issue parsing the old one (#586)
belkiss Feb 2, 2020
8412eeb
Post integration: Corrupt DB doesn't prevent builds
ffulin Feb 2, 2020
da51949
MessageBox: Replace some platform-specific message box usage with Env…
ffulin Feb 2, 2020
7c436ae
[Improvement] Improved -help/usage option for FBuild and FBuildWorker
ffulin Feb 2, 2020
a02ca8a
Add option "-nolocalrace": so a job is either done locally or remotel…
belkiss Feb 5, 2020
0009549
Documentation fixes: [skip ci]
ffulin Feb 6, 2020
11da72c
Post integration cleanup: -nolocalrace option
ffulin Feb 6, 2020
694c281
Add first pass at git pull request template
ffulin Feb 6, 2020
b0ed1bc
Update PR template: [skip ci]
ffulin Feb 6, 2020
5b04a09
Integrate pull request template from dev
ffulin Feb 7, 2020
daa5108
Periodically update modified time of brokerage files for workers that…
bburgin Feb 8, 2020
6db2977
Post integration: Worker update brokerage entry modificaiton times
ffulin Feb 8, 2020
1d77264
Array optimization: - avoid unnecessary work in destructor
ffulin Feb 8, 2020
b2f2a75
Enable C++17 features/conformance for VS2017 & VS2019
ffulin Feb 8, 2020
6b970fb
AString: Add tests for TrimStart and TrimEnd
ffulin Feb 8, 2020
99eb948
Allow FastBuildWorker to clean the broker folder of stale files (#572)
belkiss Feb 10, 2020
49a6241
Post-integration cleanup: Workers clean the brokerage folder
ffulin Feb 10, 2020
273ea13
Referencing external (non-FASTBuild generated VS projects) in new VSP…
lucianm Feb 16, 2020
a0dee1c
[Fix] Prevent malformed errors with -fixuperrorpaths and vbcc
ffulin Feb 16, 2020
5f8f53a
Post integration: VSProjectExternal cleanup
ffulin Feb 16, 2020
34afd78
Regenerate integration files [skip ci]
ffulin Feb 16, 2020
3db9e59
Post integration: VSProjectExternal cleanup
ffulin Feb 16, 2020
1c7a255
VSProject related code cleanup:
ffulin Feb 16, 2020
7469ca8
Delete unused lz4 dll example files [skip ci]
ffulin Feb 16, 2020
3584969
[Improvement] Clang static analysis is applied consistently to files …
ffulin Feb 23, 2020
d237f8d
VspteModuleWrapper: make use of lazy Meyer's singleton thread safene…
lucianm Feb 24, 2020
ba2e4cf
Don't define nullptr (#703)
dummyunit Feb 25, 2020
9dbdc0a
Update bash completion (#700)
dummyunit Feb 26, 2020
d8b8c94
Use Array::EmplaceBack instead of Append where possible (#704)
dummyunit Feb 28, 2020
3136b3a
Post-integration: Fix VS2019 compilation
ffulin Feb 28, 2020
d78b4f3
[Fix] FBuildWorker CPU drop down scrolls when there are many CPUs
ffulin Feb 29, 2020
6b0f896
Verbose output logic cleanup
ffulin Feb 29, 2020
65e2905
Cleanup build output:
ffulin Feb 29, 2020
5f338f5
[Improvement] -showcmdoutput cmdline option shows the full output of …
ffulin Feb 29, 2020
27fd6d3
fixes incremental linking not working anymore (#708)
fran6co Feb 29, 2020
6f4e37a
Post-integration: Add regression test for MSVC incremental linking
ffulin Feb 29, 2020
3d0ae6b
CSNode: Remove redundant "object missing despite success" logic
ffulin Mar 1, 2020
a39d67b
Code cleanup:
ffulin Mar 1, 2020
941d059
New function, TextFile, for creating text files (#629)
mkujawa Mar 1, 2020
a6f4ebd
Post-Integration: TextFile cleanup
ffulin Mar 1, 2020
58bb73d
Add idle threshold to worker brokerage file when in idle mode
ffulin Mar 5, 2020
1ae7e7e
Remove zipped version of usertype.dat. (#712)
belkiss Mar 6, 2020
b897dc5
Minor MemPoolBlock optimization:
ffulin Mar 7, 2020
6014d79
Remove assert in Node that could fire under normal circumstances
ffulin Mar 7, 2020
b920088
Fix VS2015 failures:
ffulin Mar 8, 2020
fe0e5f4
Cleanup VisualStudio bffs:
ffulin Mar 8, 2020
38425d0
Regenerate Integration files for new TextFile function [skip ci]
ffulin Mar 8, 2020
ca96606
Add .UseRelativePaths_Experimental option to Compiler()
ffulin Mar 10, 2020
aa753f0
[New] file_exists directive can be used with #if to detect the presen…
ffulin Mar 11, 2020
12a864b
fix windows tray icon menu (#717)
deter2003 Mar 14, 2020
00bb31b
Revert "fix windows tray icon menu"
ffulin Mar 14, 2020
6af2c12
[Fix][Windows] Fix FBuildWorker menu item not hiding correctly (Thank…
ffulin Mar 14, 2020
5f2347e
Update pull_request_template.md
ffulin Mar 14, 2020
0f392bd
Update pull_request_template.md
ffulin Mar 14, 2020
a264185
Add support for building FASTBuild with Clang10 on Windows
ffulin Mar 15, 2020
b1d4fad
Code style cleanup: TestFramework
ffulin Mar 15, 2020
4ea53ae
Code style cleanup: BFFFuzzer
ffulin Mar 15, 2020
2020877
Code style cleanup: OSUI
ffulin Mar 15, 2020
703a8ea
Code style cleanup: FBuildApp
ffulin Mar 15, 2020
78b851c
Update .gitignore for Clang 10.0.0.RC3 for Windows [skip ci]
ffulin Mar 15, 2020
61c3218
Code style cleanup: Core
ffulin Mar 15, 2020
9d4b725
Code style cleanup: FBuildWorker
ffulin Mar 15, 2020
b271729
Code style cleanup: FBuildTest
ffulin Mar 15, 2020
9dc34de
FBuildWorker fixes:
ffulin Mar 18, 2020
4f6d9f0
Adds support for manually setting the librarian type just like the li…
fran6co Mar 22, 2020
2f3cdc9
Post integration: Librarian() .LinkerType
ffulin Mar 22, 2020
7d9440e
Regenerate integration files [skip ci]
ffulin Mar 22, 2020
158337f
VSSolution folders may also contain so-called "solution items" (#699)
lucianm Mar 28, 2020
146a6e7
Post-integration: Solution support "Solution Items"
ffulin Mar 28, 2020
abcccbb
FASTBuild tweaks for VS 2019.5.1 (14.25.28610)
ffulin Mar 30, 2020
00c26b8
[Fix] Add missing documentation for several XCode project generation …
ffulin Apr 3, 2020
0e90fe7
Disable "Other" jobs for travis-ci
ffulin Apr 3, 2020
5d1e3d8
Isolate files list for UnityNode (#220)
poppolopoppo Apr 4, 2020
17e8480
Post-integration cleanup: Unity() .UnityInputIsolateListFile
ffulin Apr 4, 2020
3047cb6
Unity() UnityInputIsolateListFile is a dependency
ffulin Apr 4, 2020
f3cf8fb
OSWindow: Fix uninitialized variable on OSX/Linux
ffulin Apr 4, 2020
f50d0b9
OSUI code style cleanup
ffulin Apr 4, 2020
8b952b2
Code style consistency fixes
ffulin Apr 4, 2020
72c973d
FBuildTest: Increase timeout to reduce failures on Travis CI
ffulin Apr 4, 2020
6b42d86
Upgrade to LZ4 1.9.2
ffulin Apr 4, 2020
75bb189
Further static analysis fixes for LZ4 1.9.2
ffulin Apr 4, 2020
84baa27
[Improvement][Windows] Decompression speed on remote workers improved…
ffulin Apr 4, 2020
4cd6eaf
[Improvement] PrecompiledHeaders can be re-used between multiple Obje…
ffulin Apr 5, 2020
2f947f9
FIx new PCH tests with VS2017
ffulin Apr 5, 2020
4148483
[Improvement] Dependency graph traversal optimized by parallelizing f…
ffulin Apr 8, 2020
7efee4e
[Improvement] Unity evaluation is avoided when no inputs have changed
ffulin Apr 8, 2020
f9d7944
[New] -why command line option details the trigger for each thing tha…
ffulin Apr 9, 2020
6ea8142
Fix bugs introduced during recent Unity improvements
ffulin Apr 12, 2020
cccc18d
Unity tests: Add sleeps on OSX to provide compatibility with old file…
ffulin Apr 12, 2020
3f1ca89
Core debug visualizer improvements: [skip ci]
ffulin Apr 12, 2020
0ce4e04
[Fix] Order of files in Unity is consistent between OSs, file systems…
ffulin Apr 12, 2020
73f4238
[Improvement][Windows] Directly listing cost reduced by ~30%
ffulin Apr 12, 2020
8b3cd31
Fix unity files not being regenerated if delete and no other changes …
ffulin Apr 12, 2020
27ccfe4
Process: Delete unused code
ffulin Apr 13, 2020
02ed9a2
NodeGraph: Small simplification to Save function
ffulin Apr 13, 2020
95a91dd
Fix Unity regression: Ensure list of unity files & isolated files are…
ffulin Apr 13, 2020
23f1c00
Fix -cacheinfo and -cachetrim on case-sensitive filesystems (#730)
dummyunit Apr 14, 2020
4b6d727
Clarify documentation for .XCodeBuildToolArgs
ffulin Apr 17, 2020
3a4eebc
BFFMacors: Code style fixes
ffulin Apr 19, 2020
9171660
FBuildTest: Improve TEST_PARSE_* macros
ffulin Apr 19, 2020
34eb161
FBuildTest: Fix bad error message in updated ParseFromString helper
ffulin Apr 19, 2020
bdbad09
[New] BFF syntax supports users defined functions
ffulin Apr 23, 2020
90384e8
Integration files cleanup:
ffulin Apr 25, 2020
41c8632
Fixes lightcache randomly generating different cache keys (#716)
fran6co Apr 25, 2020
da08cd2
LightCache fixes: post-integration cleanup
ffulin Apr 25, 2020
f5cec8f
[Improvement] LightCache emits reason for not being used when -cachev…
ffulin Apr 26, 2020
51cc61d
[Fix] -showtargets no longer returns error code -7 when -wrapper is used
ffulin Apr 26, 2020
5fd06b7
Fix minor documentation errors (wording/typos) [skip ci]
ffulin Apr 27, 2020
fda6a7a
[Fix][OSX][Linux] Periodically touch synchronized toolchains to preve…
ffulin May 1, 2020
888f2d8
Fix file_exists so paths are bff relative, using the same logic as #i…
ffulin May 2, 2020
fda3ff0
Fix tests when running on new machine
ffulin May 2, 2020
16a9ffc
v1.00
ffulin May 3, 2020
f5b5617
Update .gitignore to match dev branch
ffulin May 3, 2020
8d73453
v1.00
ffulin May 4, 2020
ae7b527
Add build status
ffulin May 4, 2020
1877784
Merge branch 'master' into dev
ffulin May 4, 2020
6a173e8
[Improvement] BFF parsing speed improved significantly (as much as 2x)
ffulin May 9, 2020
61e79ea
Switch AString copy to use memmove instead of memcpy to ensure correc…
ffulin May 9, 2020
8e67874
Process: Code cleanup
ffulin May 9, 2020
682df60
Linux/OSX changes missing from previous commit
ffulin May 9, 2020
161d5c7
Add missing include
ffulin May 9, 2020
3a86959
Update travis CI to use v1.00 binaries
ffulin May 9, 2020
24bbcdc
[Fix] Correctly handle long paths on Windows (if enabled at OS level)
ffulin May 22, 2020
386fc84
Timer: Remove unnecessary assert
ffulin May 22, 2020
97155fe
Replace gen_default_aliases.bff with a User Function
ffulin May 22, 2020
cb29fc8
Fix documentation typos (#736)
claimred May 22, 2020
2e544b7
Compiler auto-detection:
ffulin May 23, 2020
a498287
[Improved] Minor improvements to error documentation [skip ci]
ffulin May 25, 2020
33d916e
Cleanup errors.html [skip ci]
ffulin May 25, 2020
64ffe3a
[Improvement] CSharp compiler is auto detected, removing need to set …
ffulin May 25, 2020
40ed1fc
Minor bff cleanup:
ffulin May 31, 2020
78bcf23
Remote SystemFailure improvement & fix
ffulin May 31, 2020
61a3a8c
Fix OSX/Linux compile error
ffulin May 31, 2020
16b4485
Travis CI: Attempt to fix LInux failures
ffulin May 31, 2020
3ad32ca
Travis CI: Disabel cert check
ffulin May 31, 2020
b877e36
[Improvement] Add UseRelativePaths_Experimental to Unity node
ffulin Jun 3, 2020
b1a779c
[Fix] Environment variables imported with #import no longer have care…
ffulin Jun 4, 2020
34c414b
[Fix] Environment variables containing $ imported with #import no lon…
ffulin Jun 5, 2020
9597287
[Note] Bump database version and network protocol version
ffulin Jun 6, 2020
02dd707
Documentation: Delete "Status" page - it hasn't been useful for some …
ffulin Jun 6, 2020
79d1410
v1.01
ffulin Jun 6, 2020
d5bc05c
v1.02
ffulin Aug 26, 2020
ed539b8
Fix minor doc typo (#794)
matklad Oct 31, 2020
77418d7
Revert "Fix minor doc typo (#794)" (#797)
ffulin Oct 31, 2020
397713c
v1.03 from Perforce repo
ffulin Dec 13, 2020
f2cf32b
Dev (#801)
ffulin Dec 13, 2020
1a179fe
v1.04 update from Perforce
ffulin Jan 19, 2021
0e34eb4
Sync dev to master branch (#812)
ffulin Jan 19, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 20 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# FASTBuild
External/SDK
*.exe
*.fdb
*.log
Expand All @@ -8,8 +7,7 @@ External/SDK
*.sdf
*.suo
*.user
*.vcxproj
*.vcxproj.filters
fbuild-linux
tmp/
ftmp/
bin/
Expand All @@ -28,11 +26,25 @@ Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# SDKs
External/SDK/Clang/Windows/3.4/
External/SDK/Clang/Windows/3.6/
External/SDK/Clang/Windows/3.7.1/
External/SDK/Clang/Windows/5.0.1/
External/SDK/Clang/Windows/6.0.0/
External/SDK/Clang/Windows/7.0.1/
External/SDK/Clang/Windows/8.0.0/
External/SDK/Clang/Windows/9.0.0/
External/SDK/Clang/Windows/10.0.0.RC3/
External/SDK/Clang/Windows/11.0.0/
External/SDK/CUDA_6.5.14/
External/SDK/other/
External/SDK/VisualStudio/2013/
External/SDK/VisualStudio/2015/
External/SDK/VisualStudio/2017/
External/SDK/VisualStudio/2019/
External/SDK/Windows/8.1/
External/SDK/Windows/10/

# Windows shortcuts
*.lnk
Expand Down
250 changes: 250 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
language: cpp

matrix:
include:
#=====================================================================
# Compile & Run Tests (Unity)
#=====================================================================
- os: linux
stage: Compile
name: "Linux: Debug/Profile/Release & Tests"
#---------------------------------------------------------------------
- os: osx
stage: Compile
name: "OSX: Debug/Profile/Release & Tests"
compiler: clang
#---------------------------------------------------------------------
- os: windows
stage: Compile
name: "Windows: Debug/Profile/Release & Tests"
#=====================================================================
# Compile Only (No Unity)
#=====================================================================
- os: linux
stage: Compile
name: "Linux: Debug (NoUnity)"
env: CFG=nounity
#---------------------------------------------------------------------
- os: osx
stage: Compile
name: "OSX: Debug (NoUnity)"
compiler: clang
env: CFG=nounity
#---------------------------------------------------------------------
- os: windows
stage: Compile
name: "Windows: Debug (NoUnity)"
env: CFG=nounity
#=====================================================================
# Static Analysis
#=====================================================================
- os: windows
stage: StaticAnalysis
name: "Windows Analyze"
env: CFG=analyze
#=====================================================================
# Linux, Latest supported compilers
#=====================================================================
#- os: linux
# stage: Other
# name: "Linux GCC8 & Clang8"
# env: GCC=gcc-8 CLANG=clang-8
# addons:
# apt:
# sources:
# - ubuntu-toolchain-r-test
# - llvm-toolchain-trusty-8
# packages:
# - gcc-8
# - g++-8
# - clang-8
#=====================================================================
# Sanitizers
#=====================================================================
# Linux, AddressSanitizer
#---------------------------------------------------------------------
- os: linux
stage: Sanitizers
name: "Linux AddressSanitizer"
env: CFG=asan CLANG=clang-8
# Use latest clang when building with sanitizers.
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-8
packages:
- clang-8
- llvm-8 # for llvm-symbolizer
sudo: true # LeakSanitizer doesn't work inside Travis containers, see https://github.com/travis-ci/travis-ci/issues/9033.
#---------------------------------------------------------------------
# Linux, MemorySanitizer
#---------------------------------------------------------------------
- os: linux
stage: Sanitizers
name: "Linux MemorySanitizer"
env: CFG=msan CLANG=clang-8
# Use latest clang when building with sanitizers.
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-8
packages:
- clang-8
- llvm-8 # for llvm-symbolizer
#---------------------------------------------------------------------
# Linux, ThreadSanitizer
#---------------------------------------------------------------------
- os: linux
stage: Sanitizers
name: "Linux ThreadSanitizer"
env: CFG=tsan CLANG=clang-8
# Use latest clang when building with sanitizers.
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-8
packages:
- clang-8
- llvm-8 # for llvm-symbolizer
allow_failures:
- env: CFG=asan CLANG=clang-8
- env: CFG=msan CLANG=clang-8
- env: CFG=tsan CLANG=clang-8
fast_finish: true

stages:
- Compile
- StaticAnalysis
- Sanitizers
#- Other

install:
# Download and unpack archive for a release version.
- DL_VER=1.03
- |
case "${TRAVIS_OS_NAME}" in
linux) FN=FASTBuild-Linux-x64-v${DL_VER}.zip FBUILD=fbuild ;;
osx) FN=FASTBuild-OSX-x64-v${DL_VER}.zip FBUILD=FBuild ;;
windows) FN=FASTBuild-Windows-x64-v${DL_VER}.zip FBUILD=FBuild.exe ;;
esac
# TODO: Remove --no-check-certificate when Travis CI fixes their Linux nodes
# (they currently incorrectly complain about an expired certificate for fastbuild.org)
# (works fine outside of Travis, and even on OSX and Windows nodes in Travis)
- wget --no-check-certificate https://fastbuild.org/downloads/v${DL_VER}/${FN}
- unzip ${FN}
- chmod +x ./${FBUILD}
# Set up some variables for convenience.
- |
- FBUILD_CMD="../${FBUILD} -noprogress -nostoponerror -summary"
- GCC=${GCC:-gcc}
- GXX=${GCC/gcc/g++}
- CLANG=${CLANG:-clang}
- CLANGXX=${CLANG/clang/clang++}
# On Linux/OSX print paths to binaries for the installed compilers.
# On Windows check that all tools are present at paths we expect, if not then try to find them on the disk and fail the build.
- |
case "${TRAVIS_OS_NAME}" in
linux)
for x in ${GCC} ${GXX} $(${GCC} -print-prog-name=cc1) $(${GCC} -print-prog-name=cc1plus) ${CLANG} ${CLANGXX}; do
echo $x; which $x && readlink -f $(which $x)
echo
done
true # These commands are purely informational, don't fail the build if they fail.
;;
osx)
for x in ${CLANG} ${CLANGXX}; do
echo $x; which $x
echo
done
true # These commands are purely informational, don't fail the build if they fail.
;;
windows)
SUCCESS=true
if [[ ! -f 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe' ]]; then
find 'C:\Program Files (x86)' 'C:\Program Files' -iname cl.exe
SUCCESS=false
fi
if [[ ! -f 'C:\Program Files (x86)\Windows Kits\10\Bin\10.0.17134.0\x64\RC.exe' ]]; then
find 'C:\Program Files (x86)' 'C:\Program Files' -iname rc.exe
SUCCESS=false
fi
if [[ ! -f 'C:\Program Files\LLVM\bin\clang++.exe' ]]; then
find 'C:\Program Files' -iname clang++.exe
SUCCESS=false
fi
if [[ ! -f 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe' ]]; then
find 'C:\Windows' -iname csc.exe
SUCCESS=false
fi
${SUCCESS}
;;
esac

script:
- cd Code
# Inject a #define into root configs to activate CI logic.
- |
sed -i -e "1i\\
#define CI_BUILD
" fbuild.bff Tools/FBuild/FBuildTest/Data/testcommon.bff
# Put full paths to GCC binaries into config files.
- |
case "${TRAVIS_OS_NAME}" in
linux)
sed -i -e "
s:GCC_BINARY:$(which ${GCC}):
s:GXX_BINARY:$(which ${GXX}):
s:CC1_BINARY:$(${GCC} -print-prog-name=cc1):
s:CC1PLUS_BINARY:$(${GCC} -print-prog-name=cc1plus):
" ../External/SDK/GCC/Linux/GCC_CI.bff
;;
esac
# Put full paths to Clang binaries into config files.
- |
case "${TRAVIS_OS_NAME}" in
linux|osx)
sed -i -e "
s:CLANG_BINARY:$(which ${CLANG}):
s:CLANGXX_BINARY:$(which ${CLANGXX}):
" ../External/SDK/Clang/{Linux,OSX}/Clang_CI.bff
;;
esac
# Run tests in the selected configuration.
- |
case "${TRAVIS_OS_NAME}:${CFG}" in
linux:|osx:|windows:)
${FBUILD_CMD} Exes Tests
;;
linux:asan)
${FBUILD_CMD} {CoreTest,FBuildTest}-RunTest-x64ClangLinux-ASan
;;
linux:msan)
${FBUILD_CMD} {CoreTest,FBuildTest}-RunTest-x64ClangLinux-MSan
;;
linux:tsan)
${FBUILD_CMD} {CoreTest,FBuildTest}-RunTest-x64ClangLinux-TSan
;;
esac
# Check non-unity build.
- |
case "${TRAVIS_OS_NAME}:${CFG}" in
linux:nounity)
${FBUILD_CMD} -nounity -clean All-x64{,Clang}Linux-Debug
;;
osx:nounity)
${FBUILD_CMD} -nounity -clean All-x64OSX-Debug
;;
windows:nounity)
${FBUILD_CMD} -nounity -clean All-x64{,Clang}-Debug
;;
esac
# Static Analysis
- |
case "${TRAVIS_OS_NAME}:${CFG}" in
windows:analyze)
${FBUILD_CMD} All-x64-Analyze
;;
esac
Loading