Skip to content

Commit cd7863b

Browse files
authored
Merge pull request #36 from SleepingCatGames/develop
Release 0.93.01
2 parents e06cae8 + 1ff7966 commit cd7863b

File tree

111 files changed

+1916
-978
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+1916
-978
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
**/.idea
66
.csbuild
77
/__pycache__/
8+
/venv*/
89
build
910
csbuild.egg-info
1011
dist

.pylintrc

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,21 +60,16 @@ confidence=
6060
# no Warning level messages displayed, use"--disable=all --enable=classes
6161
# --disable=W"
6262
disable=
63-
assignment-from-no-return,
63+
64+
# Shared between python2 and python3
6465
bad-continuation,
6566
bad-whitespace,
6667
bare-except,
67-
broad-except,
6868
consider-using-get,
69-
consider-using-in,
7069
global-statement,
7170
line-too-long,
72-
locally-disabled,
73-
no-else-return,
74-
no-init,
7571
no-name-in-module,
7672
no-self-use,
77-
protected-access,
7873
redefined-argument-from-local,
7974
too-few-public-methods,
8075
too-many-arguments,
@@ -87,13 +82,17 @@ disable=
8782
too-many-lines,
8883
too-many-nested-blocks,
8984
too-many-ancestors,
90-
ungrouped-imports,
91-
unpacking-non-sequence,
85+
wrong-import-order,
86+
87+
# Needed for python2
88+
assignment-from-no-return,
89+
import-outside-toplevel,
90+
91+
# Needed for python3
92+
unnecessary-pass,
9293
unsubscriptable-object,
93-
unsupported-assignment-operation,
9494
useless-object-inheritance,
95-
useless-return,
96-
wrong-import-order
95+
useless-return
9796

9897

9998
[REPORTS]

MANIFEST.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
include csbuild/version
2-
recursive-include csbuild *.py
2+
recursive-include csbuild *.py
3+
recursive-include csbuild *.py2
4+
recursive-include csbuild *.py3

README.md

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,43 @@
11
## **Current test status:**
22

3-
**Test Suite** | **Status (master)** | **Status (develop)**
4-
:-----------------------: | :-----------------: | :------------------:
5-
**Linux/Python 2.7.12** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_LinuxPython2),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_LinuxPython2&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_LinuxPython2),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_LinuxPython2&branch_Csbuild=develop&guest=1)
6-
**Linux/Python 3.5.2** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_LinuxPython3),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_LinuxPython3&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_LinuxPython3),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_LinuxPython3&branch_Csbuild=develop&guest=1)
7-
**macOS/Python 2.7.12** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_MacOSPython2),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_MacOSPython2&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_MacOSPython2),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_MacOSPython2&branch_Csbuild=develop&guest=1)
8-
**macOS/Python 3.5.2** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_MacOSPython3),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_MacOSPython3&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_MacOSPython3),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_MacOSPython3&branch_Csbuild=develop&guest=1)
9-
**Windows/Python 2.7.12** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython27),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython27&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython27),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython27&branch_Csbuild=develop&guest=1)
10-
**Windows/Python 3.4.4** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython34),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython34&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython34),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython34&branch_Csbuild=develop&guest=1)
11-
**Windows/Python 3.5.3** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython35),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython35&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython35),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython35&branch_Csbuild=develop&guest=1)
12-
**Windows/Python 3.6.1** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython36),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython36&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython36),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython36&branch_Csbuild=develop&guest=1)
13-
**Windows/Python 3.7.0** | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython37),branch:(master)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython37&branch_Csbuild=master&guest=1) | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython37),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython37&branch_Csbuild=develop&guest=1)
14-
15-
<br><br>
16-
CSBuild is a language-agnostic build system focused on maximizing developer iteration time and providing tools for enabling
17-
developers to improve their build workflow. Currently, CSBuild is undergoing a complete rewrite to address some core architecture
18-
issues with the original iteration. It gets closer every day, but hasn't quite reached feature parity with the original CSBuild.
3+
**Platform** | **Test Suite** | **Status (develop)**
4+
:----------- |:--------------- | :------------------:
5+
Linux | Python 2.7 | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_LinuxPython2),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_LinuxPython2&branch_Csbuild=develop&guest=1)
6+
Linux | Python 3.6 | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_LinuxPython3),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_LinuxPython3&branch_Csbuild=develop&guest=1)
7+
|||
8+
macOS | Python 2.7 | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_MacOSPython2),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_MacOSPython2&branch_Csbuild=develop&guest=1)
9+
macOS | Python 3.8 | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_MacOSPython3),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_MacOSPython3&branch_Csbuild=develop&guest=1)
10+
|||
11+
Windows | Python 2.7 | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython27),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython27&branch_Csbuild=develop&guest=1)
12+
Windows | Python 3.8 | [![TeamCity](https://dev.aegresco.com/teamcity/app/rest/builds/buildType:(id:Csbuild_WindowsPython38),branch:(develop)/statusIcon)](https://dev.aegresco.com/teamcity/viewType.html?buildTypeId=Csbuild_WindowsPython38&branch_Csbuild=develop&guest=1)
13+
14+
---
15+
16+
CSBuild is a language-agnostic build system focused on maximizing developer iteration time and providing tools for enabling developers to improve their build workflow. Currently, CSBuild is undergoing a complete rewrite to address some core architecture issues with the original iteration. It gets closer every day, but hasn't quite reached feature parity with the original CSBuild.
1917

2018
What it currently can do:
21-
- Build basic C++ files for Windows and Linux systems
22-
- Be extended with tools to work in any language (a new feature that old CSBuild did not support)
23-
- Support macro processing in all strings (i.e., SetOutputDirectory("{toolchainName}/{architectureName}/{targetName}"))
19+
- Build basic C++, java, objective-c, and assembly files
20+
- Build on Windows, Mac, BSD, Linux, android, PS3, PS4, and PSVita systems (language support varies by system)
21+
- Be extended with tools to work in any language
22+
- Support macro processing in all strings (i.e., `csbuild.SetOutputDirectory("{toolchainName}/{architectureName}/{targetName}")`)
23+
- Generate project files for Visual Studio 2010, 2012, 2013, 2015, 2017, and 2019.
24+
- Dependency graph generation by running with --dg
25+
<img src="doc_img/depends.gv.png" alt="Dependency Graph" style="zoom:50%;" />
2426

2527
What's still missing that exists in old CSBuild:
26-
- OSX, Android, and iOS support
2728
- "Chunking" - intelligently combining multiple translation units into one and breaking them back apart to improve build turn-around
28-
- Solution generation for Visual Studio and QtCreator
29+
- Solution generation for QtCreator
2930
- Build GUI showing the progress of individual files and projects as they're build
30-
- Dependency graph generation
3131
- Build profiler to analyze and identify headers and lines of code that are expensive to compile
32-
- Full whitelisting and blacklisting support for adding and excluding files and directories to projects
3332

34-
The core architecture is much more stable and maintainable than old CSBuild's, and tools are easier to implement than
35-
they were before. The new architecture also successfully decouples csbuild from the c++ language, allowing it to be
36-
truly versatile and language-agnostic. The new csbuild also cuts down considerably on wasted time during initial startup.
37-
Now that the majority of the core features have been implemented, we expect feature parity for the tools and target platforms
38-
supported by old CSBuild to start coming online very quickly, shortly followed by solution generation, chunking,
39-
and the gui tools.
33+
The core architecture is much more stable and maintainable than old CSBuild's, and tools are easier to implement than they were before. The new architecture also successfully decouples csbuild from the c++ language, allowing it to be truly versatile and language-agnostic. The new csbuild also cuts down considerably on wasted time during initial startup. Now that the majority of the core features have been implemented, we expect feature parity for the tools and target platforms supported by old CSBuild to start coming online very quickly, shortly followed by solution generation, chunking, and the gui tools.
34+
35+
Documentation hasn't been created for the new version of csbuild yet; however, we have created a large suite of tests, so in the short term, a lot of information can be gleaned from looking at the make.py file in each test.
4036

4137
Code for old csbuild, for those interested in it, can be found here: https://github.com/SleepingCatGames/csbuild
38+
39+
---
40+
41+
## Development Notes
42+
43+
Frozen requirements files are provided for both Python 2 & 3. Currently, the only dependency is pylint which is only needed when running the pylint unit test. If using virtual Python environments for csbuild development, please keep in mind that the pylint test will fail on macOS under the Python 2 virtual environment. However, if you install pylint to your system-installed copy of Python 2.7 and run against that, the pylint unit test will pass. This issue does not seem to be present on Windows or Linux and all other unit tests are unaffected by the presence of a Python2 virtual environment on macOS.

0 commit comments

Comments
 (0)