Commit graph

44 commits

Author SHA1 Message Date
Đoàn Trần Công Danh
0d75e72b8b build-style/cmake: pass LIBS as CMAKE_*_STANDARD_LIBRARIES
Normally, we can add them into configure_args directly.
However, if we need to link with 2 or more libaries (e.g. -latomic
and -lexecinfo on armv6-musl), we have noway to do it properly:
- configure_args will be splited on whitespace
- cmake denies to recognise CMAKE_*_STANDARD_LIBRARIES as a list,
  hence denies to split on semicolon (";")

Let's pass LIBS as CMAKE_*_STANDARD_LIBRARIES instead.
2022-02-23 21:28:37 +07:00
Joshua Krämer
636336b1a7 Add -DNDEBUG to CFLAGS and CXXFLAGS in CMake build style
CMake adds -DNDEBUG with build types Release, MinSizeRel and RelWithDebInfo.
NDEBUG disables assert(), which can improve performance.
2021-07-16 19:48:16 +02:00
Piotr Wójcik
88c9f70cfa build-style/cmake: move CTEST_OUTPUT_ON_FAILURE to environment 2021-06-11 22:45:07 +02:00
John
644bdb2867 common/build-style/cmake.sh: pass full path of TOOLCHAIN_FILE to cmake 2021-05-06 18:23:18 +02:00
Đoàn Trần Công Danh
1af5a29d87 build-style/cmake: set CMAKE_BUILD_TYPE to None
- CMAKE_BUILD_TYPE=Release will force -O3 instead of respecting our
  CFLAGS and CXXFLAGS
- Theoretically, we could patch cmake to always use -O2 instead,
  however, patching will break users' expectation when compiling their
  our code.
- RelWithDebInfo could be another option if it's acceptable to always
  have debug symbol available.
- However, some projects ignore all CFLAGS and CXXFLAGS;
- Some other projects relies on CMAKE_BUILD_TYPE=Release to install to
  correct location and/or disable coverage.
- To get away with -O3, we need patching either ways, let's go with
  CMAKE_BUILD_TYPE=None, and patch all problematic softwares.
2021-04-03 09:52:55 +07:00
Đoàn Trần Công Danh
2a1482daeb build-style/cmake: add missing "{}" 2021-02-20 13:11:25 +07:00
Đoàn Trần Công Danh
8e102f22ce build-style/cmake: also fix -isystem for Ninja
Discovered by cross-build failure of gnuradio-osmosdr.

While we're at it, fix flags.make in batch.
2021-02-20 13:09:32 +07:00
Érico Rolim
8c41deaff7 common/build-style: fix do_check for cmake.
make was accidentally left hardcoded to query if a test target was
available, which meant tests wouldn't be run for most of the
applications, since they were now using ninja.
2021-02-19 18:56:18 +01:00
John
446425847d build-style/cmake: replace sed monstrosity with ${wrksrc}/${build_wrksrc} 2021-02-09 00:19:27 +01:00
John
04715e12f6 build-style/cmake: use ninja as default generator
closes #28304
2021-02-09 00:19:07 +01:00
John
98f239edf8 build-style/cmake.sh: remove handeling of wxWidgets when cross compiing
This can be potentially broken, and the preffered way is to just set the WX_CONFIG env variable
2020-12-30 17:58:36 +01:00
q66
87d28506e1 build-style: change all build-styles to use /usr/libNN 2020-12-22 22:18:25 +01:00
Đoàn Trần Công Danh
b400ac3e81 build-style/cmake: set find_root_path to cross_base/usr 2020-11-28 05:56:03 +07:00
Đoàn Trần Công Danh
3c1727cf31 build-style/cmake: only look into masterdir libraries
As of it's now, cmake will look into host's libraries, thus
bootstrapping will fail at ccache if host system doesn't have
libzstd-devel installed.
2020-11-01 21:22:23 +01:00
John
0e87174b5e build-style/cmake: set CTEST_OUTPUT_ON_FAILURE=TRUE in do_check
Currently a failed output has to be found somewhere in the build directory,
having it output also to stdout makes it far easier to see why it failed
2020-07-11 14:07:29 +02:00
q66
b5fd7971b5 build-style/cmake: recognize ppcle for cross 2020-04-30 01:06:52 +02:00
John
0adf0a781c build-style/cmake: pass DESTDIR as env var to make install
this ensures that the build-style also works with ninja when setting
-GNinja and make_cmd=ninja
2020-02-06 10:34:36 +01:00
q66
f317ed5e7e common/build-style/cmake.sh: strip -pipe if present in C(XX)FLAGS
Reason: https://gitlab.kitware.com/cmake/cmake/issues/19590

Our workaround within cmake is not sufficient as it does not
address the issue fully and things still break sometimes. So
work around this in the build-style for the time being (and
drop the cmake patch).

Once this is fixed upstream (probably needs special casing
for the -pipe flag and strip it during compile tests) we
can drop this.
2020-01-11 18:52:12 +01:00
John
f4273541b8 New build-helper: qemu 2019-10-26 00:59:41 +02:00
q66
c7989e5693
build-style/cmake: powerpc->ppc for CMAKE_SYSTEM_PROCESSOR
ppc is the correct name which cmake reports in a native ppc32
environment, therefore the cross toolchain definition is wrong.

Closes: #12061 [via git-merge-pr]
Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
2019-06-01 00:58:57 +02:00
John
851a83b478 Revert "build-style/cmake.sh: Use -DCMAKE_BUILD_TYPE=RelWithDebInfo when having XBPS_DEBUG_PKGS set"
This reverts commit 6638dc5526.

Setting RelWithDebInfo can cause issues since cmake macros often handle
only Release or Debug build but not RelWithDebInf which might cause
issues https://github.com/void-linux/void-packages/pull/10948

It is advised to set -DCMAKE_BUILD_TYPE=RelWithDebInfo manually in
packages that ignore our CFLAGS or patch them to use them

closes #10948
2019-04-15 04:26:07 +02:00
John
86a7cb8689 build-style/cmake: only set CMAKE_CROSSCOMPILING_EMULATOR when qemu is in hostdeps 2019-04-15 03:11:14 +02:00
John
01d11a4938 build-style/cmake: set CMAKE_CROSSCOMPILING_EMULATOR 2019-04-05 23:04:14 +02:00
Foxlet
f726125246 common: Set system processor for PPC cmake 2019-02-09 02:29:24 -02:00
John
9518d3c77c
build-style/cmake: add missing space before closing bracket 2019-01-21 22:52:56 +01:00
John
6f0fee9429 build-style/cmake: add check fo nodebug flag
[ci skip]
2019-01-17 14:04:27 +00:00
John
6638dc5526 build-style/cmake.sh: Use -DCMAKE_BUILD_TYPE=RelWithDebInfo when having XBPS_DEBUG_PKGS set 2019-01-15 16:15:13 +01:00
Enno Boland
0832e1adfa
build-style/cmake: fix typo 2019-01-05 23:45:27 +01:00
q66
151f876627 common: add ppc64 build profiles and other ppc64 bits
This adds the build profiles for ppc64 targets as well as
modifications in other parts of the infra.

These targets are supported:

- ppc64le (glibc little endian elfv2)
- ppc64le-musl (musl little endian)
- ppc64-musl (musl big endian)

ELFv1 targets are explicitly not supported at this point.

Big endian musl supports ppc 970 or newer, while little endian
targets are set to a generic powerpc64le which effectively means
POWER8 and newer. Tuning is always set for POWER9, which is the
most likely target hardware. We also make sure AltiVec is always
on, because it is supported on all hardware we target.

[ci skip]
2019-01-05 23:38:00 +01:00
John
ee4ce35a68 build-style/cmake: dehardcode gtk2 wxWdigets when cross compiling 2018-11-28 16:49:52 -02:00
maxice8
b552a5f05d build-style/cmake.sh: set CMAKE_SYSTEM_PROCESSOR on cross-builds 2018-10-04 10:30:10 +02:00
Piotr Wójcik
e1a62f4018 build-style/cmake.sh: fix default do_check 2018-03-09 13:43:10 -05:00
newbluemoon
67c20224e0 xbps-src: make cmake find/use the wx-config wrapper 2018-01-09 13:35:09 +01:00
Enno Boland
768fd97393
Revert "build-style/cmake.sh: reset working dir to wrksrc after do_install"
This reverts commit 2d678d4188.
2017-11-29 15:02:01 +01:00
Enno Boland
b842440e76 build-style/cmake.sh: fix result code invalid invertation 2017-11-22 12:55:35 +01:00
maxice8
dd231e7a14 build-style/cmake.sh: add generic do_check function.
Closes #9391.
2017-11-21 12:33:38 +01:00
Enno Boland
2d678d4188 build-style/cmake.sh: reset working dir to wrksrc after do_install 2017-11-18 21:25:50 +01:00
Leah Neukirchen
bcfbba40f4 build-style/cmake.sh: $CC and $CXX are good enough for cross-compiling. 2017-08-16 18:09:35 +02:00
Jürgen Buchmüller
8679124272 build-style cmake: replace -isystem with -I
Many packages depending on Qt5 or Qt4 and built with cmake
generate "flags.make" files with -isystem for include paths.
With gcc6 this results in e.g. "#include_next <stdlib.h>" giving
an error, because a -isystem /usr/include is in the wrong place.
The simple fix is to replace "-isystem" with just "-I".
2017-01-15 02:50:14 +01:00
Alessio Sergi
2c02e09892 build-style/cmake: do not use absolute path in CMAKE_INSTALL_{LIB,SBIN}DIR
...otherwise it ends up with /usr/usr/lib or /usr/usr/bin.

Partially revert PR #4230.
2016-06-26 01:01:26 +02:00
yopito
441da1c388 build-style/cmake.sh: allow templates to override cmake variables and use absolute paths (#4230) 2016-05-26 07:33:58 +02:00
beefcurtains
e30ccdc3ea build-style/cmake.sh: allow build subdirectory 2015-06-29 14:29:46 +00:00
Juan RP
1f0294fb72 build-style/cmake: sbin -> bin. 2015-06-02 18:01:12 +02:00
Juan RP
df4c861f97 xbps-src: common/{,environment}/build_style -> common/${,environment}/build-style. 2015-02-21 12:13:07 +01:00
Renamed from common/build_style/cmake.sh (Browse further)