You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: DEVELOPERS.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,7 @@
1
-
# Key Features
1
+
# Key Goals
2
2
- We try to avoid modifying the users system or msys install. We try to make sure everything we download/use is stored under the WLB_BASE_FOLDER for easy cleanup (or alternate bases). Sometimes we will use a users tools (ie cmake binary) but shouldn't require them.
3
3
- Builds follow a standardized format even if the app itself doesn't. Sometimes this results in us having to manually move files around to match the final folder structure.
4
+
- For new builds use the build script generator [BuildScriptGenerator.csx](build/BuildScriptGenerator.csx) to generate the initial build template. See the build [README](build/README.md) for details on its use.
4
5
5
6
# Helpers in Detail
6
7
The helpers are where the bulk of code is consolidated down that we would use for repeatedly. They are broken down into the following
Copy file name to clipboardExpand all lines: README.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,8 @@
22
22
<!-- /MarkdownTOC -->
23
23
24
24
# Current Tools
25
+
The link to the changes in each row will show the source changes. For build time modifications look at the [build/README](build/README.md) for details on each.
DO NOT STAGE CHANGES in build folder. NOTE: During the step in which we apply our patch we assumed any staged work is ours and discard it to a backup file. Technically after we have run our_patch we won't mess with staged items again. Similarly if there is gnulib used we use the same stage behavior when we go to patch it.
74
+
71
75
This code and the scripts were quickly written without much testing, and often involving poor quality hacks. Things like disabling testing, help generation, direct manipulation of autogenerated files post generation rather than fixing the generators. Often I use _WIN32 gating for changes, this might break cygwin platforms or using gcc/g++ in Windows. Again these code changes are low quality, if upstream projects want to consider including them may be able to clean up those code blocks.
72
76
73
77
# Why
@@ -144,6 +148,7 @@ Most of the work here was not done by me and there are some great resources out
144
148
- Non-makefile based builds (cmake etc) are a bit overcomplicated using wrapper scripts (or for cmake entire other build processes) to be able to capture the build commands and generate build .bat files. This is often not needed and is more prone to breaking. To prevent this set the best cmake style var to "vs" and any `BLD_CONFIG_BUILD_WINDOWS_COMPILE_WRAPPERS` set to 1 are set to 0.
145
149
- To build debug builds set the env var `BLD_CONFIG_BUILD_DEBUG=1`
146
150
- To generate batch files for building without msys run the build script with the arg "log_full". Note you likely need some generated files (like config.h) so these would need to be added along with the normal sources.
151
+
- Generally, when we make changes we try to stage them after so that unstaged work represents things you may have changed. The exception is we don't stage config /build files themselves. See warning under WARNINGS about the stage behavior.
Copy file name to clipboardExpand all lines: build/README.md
+127-8Lines changed: 127 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,83 @@ This directory contains the build scripts for all the libraries/apps we currentl
3
3
4
4
While we have extracted as much common code out to the helper scripts there is still a similar pattern for the build script for each specific app/library. We now use a template generator [BuildScriptGenerator.csx](BuildScriptGenerator.csx) to generate the initial build script from our template [f_TEMPLATE_build.sbn-sh](f_TEMPLATE_build.sbn-sh). As there may be times we want to re-run the script (say to bulk update the build scripts) below are the commands used to generate the initial template and any custom modifications required. This also makes it very concise what items we change from the defaults. Between this and the patch we have for that repo it should be easy to see what if any modifications were made. Note: if defaults are changed in default_config.ini then things make break / additional options passed for some builds.
It is meant to be called from powershell. It is likely most of the calls below would work in a bash shell as well but any powershell escapes (backticks) below would need to be updated. You can pass `--help` to it to get a brief overview. It has a few CLI options itself, these are essentially options that don't make sense for us to have in default_config.ini. notably:
8
85
@@ -35,21 +112,22 @@ Below are the template calls and modifications to the produced build script for
0 commit comments