ASAN is always linked in when not using compile.sh

Bug #1734843 reported by SirVer
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
widelands
Fix Released
Undecided
Unassigned

Bug Description

./compile.sh has grown to become a meta build system around the meta build system that cmake already is.

For example, the default for release builds should be that ASAN is not linked in. This is not encoded in the CMakeLists.txt though - this logic is encoded in compile.sh. This script was always meant to be a convenience tool, but by now it is actually expected that people use it, otherwise they will get surprising results.

compile.sh hurts. It hurts windows and mac users as it is not cross platform. It hurts packagers (they have fixed workflows for cmake projects), nightly builders (suddenly all Mac nightlies ship with ASAN enabled, though they are release builds) and experienced cmake users. It is an additional layer of logic that can contain bugs.

I think we should kill compile.sh and instead educate the community how to build Widelands using cMake directly.

Related branches

Revision history for this message
GunChleoc (gunchleoc) wrote :

Rather than killing compile.sh which is a HUGE time saver for me, we should rather fix the CMakeLists.txt to switch off ASAN in release builds per default.

I have already done my best to update https://wl.widelands.org/wiki/Building%20Widelands/#cmake-options, but I am not familiar with the systems on Windows and Mac, so I'm not the person to fix that.

Travis, AppVeyor and debian are already fixed and I did ping Tino, but I didn't think of Mac systems - sorry.

Revision history for this message
GunChleoc (gunchleoc) wrote :

Does the attached branch to what we need?

Changed in widelands:
milestone: none → build20-rc1
status: New → In Progress
Revision history for this message
SirVer (sirver) wrote : Re: [Bug 1734843] Re: ASAN is always linked in when not using compile.sh

Yes, it should.

> Am 28.11.2017 um 18:20 schrieb GunChleoc <email address hidden>:
>
> Does the attached branch to what we need?
>
> ** Branch linked: lp:~widelands-dev/widelands/bug-1734843-asan-
> buildsystem
>
> ** Changed in: widelands
> Milestone: None => build20-rc1
>
> ** Changed in: widelands
> Status: New => In Progress
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1734843
>
> Title:
> ASAN is always linked in when not using compile.sh
>
> Status in widelands:
> In Progress
>
> Bug description:
> ./compile.sh has grown to become a meta build system around the meta
> build system that cmake already is.
>
> For example, the default for release builds should be that ASAN is not
> linked in. This is not encoded in the CMakeLists.txt though - this
> logic is encoded in compile.sh. This script was always meant to be a
> convenience tool, but by now it is actually expected that people use
> it, otherwise they will get surprising results.
>
> compile.sh hurts. It hurts windows and mac users as it is not cross
> platform. It hurts packagers (they have fixed workflows for cmake
> projects), nightly builders (suddenly all Mac nightlies ship with ASAN
> enabled, though they are release builds) and experienced cmake users.
> It is an additional layer of logic that can contain bugs.
>
> I think we should kill compile.sh and instead educate the community
> how to build Widelands using cMake directly.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/widelands/+bug/1734843/+subscriptions

GunChleoc (gunchleoc)
Changed in widelands:
status: In Progress → Fix Committed
Revision history for this message
kaputtnik (franku) wrote :

compile.sh is also very convenient for me. Especially copying the executables (including wl_map_info for testing map uploads locally) to the base dir is convenient. Of course i can do that by hand... Normally my workflow for trunk is:

bzr pull
./compile.sh

Thats all. For testing other branches i use mostly the switches -w -t (exclude website stuff and translations).

Why does it hurts windows and MAC users? No one has to use the script... Maybe this has to be clarified.

If it is really a pain, we can pull it out and serve it as a standalone script. Linux users can download it from somewhere (github?) and save it in the directory he needs it. The script has to be ignored for bzr then.

Revision history for this message
GunChleoc (gunchleoc) wrote :

Fixed in build20-rc1

Changed in widelands:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.