Replies: 2 comments
-
Another breaking change alertThe recent commit carries support of builds targeting .NET 6.0 (out-of-source build only). Consequently, to test those builds, the This change does not affect the SCons scripts because they use absolute paths to locate appropriate executables, but for if you want to |
Beta Was this translation helpful? Give feedback.
-
Final update (w/ breaking changes)In commit ffdead2 I renamed the SCons scripts so that the out-of-source build is the default. The breaking change is that after a regular build using I deliberately kept the in-source build option functional, to be run through |
Beta Was this translation helpful? Give feedback.
-
The current SCons build is an in-source build, meaning that after a build, intermediate and final build artifacts are intermingled with source files. Apart from aesthetics, it is undesirable for several reasons:
git clean -dfx
. That is the nuclear option that will delete also files that are in the work area that may be wip and should be preserved. Another way is to runscons --clean
. This one has some limitations, though:SConstruct
is in a working state; this may not be so in the middle of development.scons -c
has to be run with the same option as the existing build was run. For instance to clean afterscons mode=debug
, one has to remember to runscons mode=debug -c
.dotnet build
.SConstruct
changes between commits, the working area should be cleaned with the same commit checked out as when it was built. Pulling new commits into a dirty working area and then trying to clean may leave files behind. The same when switching branches, checking out past revisions, etc.A solution I would like to go ahead with is to use out-of-source builds, like in IronPython. All build artifacts, be it intermediate or final, would go into separate directories that are not under source control. SCons has some provisions for out-of-source builds with its variant dir mechanism, which works somewhat different that
msbuild
orCMake
, but there is no point to fight the tool so I intend to use it.As the first step of separating the source files from the build artifacts, I have moved
__init__.py
frombuild/ironclad
intodata
with a rename. So @slozier, if you need to edit this file, be aware that any edits need to go intodata/ironclad__init__.py
and that any changes directly inbuild/ironclad/__init__.py
will be overwritten by the next build.Beta Was this translation helpful? Give feedback.
All reactions