Commit Graph

67 Commits

Author SHA1 Message Date
Jan Tojnar
cfe7e12d38
Revert "cmake: only set output paths with multiple outputs"
This reverts commit be1b22538a.

The commit broke Qt modules using CMake because they disable setOutputFlags.

There is no need to have these flags limited to multiple output derivations since it
should just work. If it does not, it is a bug that should be fixed as per
https://github.com/jtojnar/cmake-snips#assuming-cmake_install_dir-is-relative-path
Likewise, having a variable to disable passing the flags is also unnecessary,
since CMake, unlike some configure scripts, ignores unknown flags. And if a person
does not like the values, they can just override them by passing the offending
flag with a different value to cmakeFlags.
2020-07-05 19:01:53 +02:00
Alyssa Ross
be1b22538a cmake: only set output paths with multiple outputs
This brings cmake inline with the behaviour used for configure
scripts, defined in multiple-outputs.sh.  It's important because
that setup hook will only set shareDocName if multiple outputs are in
use (and setOutputFlags hasn't been disabled).  So previously,
CMAKE_INSTALL_DOCDIR would be set to $out/share/doc for single-output
derivations, instead of $out/share/doc/$shareDocName, which would
result in collisions.

Since this hook now uses the setOutputFlags variable, I had to remove
the empty assignment of it added in
a714284d8b.

Fixes: https://github.com/NixOS/nixpkgs/issues/82304
2020-06-29 13:56:27 +00:00
Daiderd Jordan
68513e4071
cmake: move CMAKE_OSX_ARCHITECTURES out of the stdenv
This was initially introduced in 92188d9d17,
not clear how relevant this still is but i686 isn't supported anymore so
disable it explicitly.
2020-01-31 21:52:13 +01:00
Daiderd Jordan
b984c227d2
cmake: remove CMAKE_OSX_DEPLOYMENT_TARGET overrides
We _do_ want minimum versions in our packages.
2020-01-31 21:52:12 +01:00
Tobias Mayer
dfee92cd2e cmake: 3.15.4 -> 3.16.2 2019-12-20 15:59:32 +01:00
John Ericson
42ffaf5290 cmake: NIX_CFLAGS_COMPILE NIX_LDFLAG could be undefined 2019-11-08 13:24:20 -05:00
John Ericson
cdbbaa91ed cmake: CMAKE_*_PATH can be undefined 2019-11-05 14:21:27 -05:00
John Ericson
b7f4bda282 treewide: *Phase(s)? variables are optional
If these aren't defined, the stdenv defaults are used in the `*Phase`
case, or no extra phases are done, in the `*Phases` case.
2019-11-01 14:44:44 -04:00
John Ericson
1290e532ea treewide: Make more dont* variables OK to be undefined in setup hooks 2019-11-01 14:44:44 -04:00
Dmitry Kalinkin
c8041d97a5
cmake: process -iframework in setup-hook
This fixes a regression in #26197

Fixes: f496357585 ('cc-wrapper: use -iframework instead of -F')
2019-10-11 18:48:16 -04:00
worldofpeace
883a1dffcf
Merge pull request #52859 from jtojnar/cmake-gid
cmake: use multiple outputs for GNUInstallDirs
2019-07-25 16:05:10 -04:00
Matthew Bauer
91f0c848f4 cmake: set BUILD_TESTING=OFF when doCheck is false
This means we can avoid building test suites that will never be run.
2019-03-09 14:32:55 -05:00
Florian Franzen
e0e4577c0f cmake: disable package registry 2019-01-31 10:17:55 +01:00
Jan Tojnar
c0d2f92459
cmake: use multiple outputs for GNUInstallDirs
CMake contains a module for more granular installation directories:

https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html

Let’s set the paths so that projects using the module can be more
easily split into multiple outputs.
2018-12-25 20:51:31 +01:00
Matthew Bauer
70e2b0bef0 cmake: also set CTEST_PARALLEL_LEVEL 2018-11-19 18:14:44 -06:00
Matthew Bauer
285eb9a894 cmake: set CTEST_OUTPUT_ON_FAILURE globally
We should always use this.
2018-11-19 16:16:16 -06:00
Matthieu Coudron
a6809c0dd0 cmake: don't override cmakeDir when set (#40687)
When dontUseCmakeBuildDir is true (aka the default), it overrides
cmakeDir regardless of the package configuration.

While packaging netbee, I needed to both keep dontUseCmakeBuildDir to
true (some hardcoded paths expect the build folder) and set cmakeDir
(since CMakeList.txt was in a subfolder) which proved impossible.
Here is the fix.
2018-06-03 12:28:28 +00:00
John Ericson
ce018be2d6
Merge pull request #40566 from obsidiansystems/strictDeps-for-18.03
cmake: Fix build and setup hook
2018-05-15 16:31:17 -04:00
John Ericson
0ff650a392 cmake: Fix build and setup hook
I screwed this up in 330ca731e8. I'm
sorry.
2018-05-15 15:24:22 -04:00
John Ericson
5e17335bd7 Merge remote-tracking branch 'upstream/staging' into strictDeps 2018-05-14 23:33:03 -04:00
John Ericson
330ca731e8 treewide: Get rid of all uses of crossConfig
The hack of using `crossConfig` to enforce stricter handling of
dependencies is replaced with a dedicated `strictDeps` for that purpose.
(Experience has shown that my punning was a terrible idea that made more
difficult and embarrising to teach teach.)

Now that is is clear, a few packages now use `strictDeps`, to fix
various bugs:

 - bintools-wrapper and cc-wrapper
2018-05-14 23:30:37 -04:00
Matthew Bauer
bd9b17f762 cmake: correctly detect clang compiler on macOS 2018-03-14 14:36:27 -05:00
Matthew Bauer
8beb809fd1 cmake: don't detect macOS deployment target 2018-03-14 14:31:53 -05:00
Matthew Bauer
acbf439fef cmake: disable detecting global macOS sdk 2018-03-14 14:30:10 -05:00
Matthew Bauer
b99cae3931 cmake: set CMAKE_FIND_FRAMEWORK=last 2018-03-14 14:20:07 -05:00
Will Dietz
e25a343716 cmake: don't force gcc, use more general cc/c++ 2018-02-13 12:39:34 -06:00
Will Dietz
37c2ac90e6 cmake: fix cross
TODO: toolchain file instead?
2018-02-13 09:44:29 -06:00
Daiderd Jordan
6f10cfc777
cmake: fix INSTALL_NAME_DIR for darwin libraries
When there's a lib output libraries won't be intalled to $prefix causing
output cycles.
2018-01-07 09:45:25 +01:00
John Ericson
046f091e0d treewide: Don't use envHook anymore
This commits needs a MAJOR audit as I oftentimes just guessed which of
`$hostOffset`, `$targetOffset`, or a fixed offset should be used.
2017-12-30 22:04:22 -05:00
Orivej Desh
031138b7f0 cmake: enable parallel building of cmake projects by default 2017-12-07 08:52:42 +00:00
Orivej Desh
da516f0404 cmake: generate for Ninja when the build phase is Ninja
This is overridable by providing a custom build phase or setting
dontUseNinjaBuild = true.
2017-12-07 08:52:42 +00:00
Matthew Bauer
24eb665695 cmake: setup CMAKE_FRAMEWORK_PATH
This tells cmake how to find macOS frameworks.

Fixes #26197
2017-10-21 02:27:09 -05:00
Linus Heckemann
28154f45a6 cmake setup hook: allow other build types 2017-05-10 14:33:20 +01:00
Michael Raskin
dabf09aa92 cmake: update setup-hook to take -isystem instead of -I into account 2016-09-08 09:10:00 +02:00
Thomas Tuegel
491f7f017c cmake: set LIBDIR and INCLUDEDIR for multiple outputs 2016-04-20 10:01:06 -05:00
Thomas Tuegel
a714284d8b cmake: don't set incompatible flags for multiple outputs 2016-01-31 21:15:03 -06:00
Thomas Tuegel
1087020a46 cmake: invoke configure hooks correctly
Otherwise, the multiple-outputs hooks will not fire correctly.
2016-01-31 21:15:03 -06:00
Luis G. Torres
ff35c4a5e2 Make cmake install libraries with full install names by default so that executables can find cmake-installed shared libraries at runtime on Darwin. Addresses #6821. 2015-03-30 21:25:44 -04:00
Eelco Dolstra
0acc4e6b26 cmake: Fix setup hook on bash < 4.0
This matters in nix-shell and stdenvNative on Darwin.

Fixes #3204.
2014-08-09 23:14:01 +02:00
Vladimír Čunát
3314be6b73 cmake: consistent names, to satisfy comments on #567 2013-06-27 16:33:24 +02:00
Vladimír Čunát
7f1e09c35d Re-Revert "Merge pull request #567 from MarcWeber/submit/cmake-improvement"
This reverts commit b08e12b37a.
2013-06-27 15:14:32 +02:00
Peter Simons
b08e12b37a Revert "Merge pull request #567 from MarcWeber/submit/cmake-improvement"
This reverts commit abc7591aaf, reversing changes
made to 6b1ebeccf2, because they broke half the
packages in stdenv-updates: http://hydra.nixos.org/eval/927013 has further
details.
2013-06-17 10:19:15 +02:00
Marc Weber
f7ef08e5cd experimental/cmake-improvement
set CMAKE_LIBRARY_PATH, CMAKE_INCLUDE_PATH based on NIX_CFLAGS_COMPILE and
NIX_LDFLAGS so that cmake's find_library like functions find all the libraries
gcc knows about thanks to the gcc wrapper

This is particular useful with myEnvFun which then also sets those CMAKE_* env
variables.`

Because setup.sh has to change this causes many rebuilds - thus it should be
included in a stdenv-update like branch

Also cmake builds in parallel perfectly fine

update cmake to latest minor number, I didn't change the patches,
just reapplied them manually recordin a new patch
2013-05-28 16:22:45 +02:00
Lluís Batlle i Rossell
183b37645b cmake setup-hook: fixing cmakeFlagsArray
The array wasn'te expanded properly, the spaces weren't preserved.
2013-03-12 11:31:58 +01:00
Shea Levy
45f6008817 cmake setup hook: If configurePhase is set, don't override it 2013-02-07 14:03:23 -05:00
Lluís Batlle i Rossell
183d05a0d7 Setting the cmake build type Release in its setup-hook, for all cmake
projects to be built in Release by default.

Some packages were not getting optimisation flags, like rigsofrods.


svn path=/nixpkgs/branches/stdenv-updates/; revision=32574
2012-02-26 11:27:45 +00:00
Eelco Dolstra
1e886749b5 * Don't replace /opt if it's followed by something other than
whitespace or a /, otherwise strings such as /foo/opticaldrive.c
  will be broken.

svn path=/nixpkgs/branches/stdenv-updates/; revision=31793
2012-01-23 13:16:51 +00:00
Eelco Dolstra
28780d27d1 * cmake: don't use replace-literal.
svn path=/nixpkgs/branches/stdenv-updates/; revision=31736
2012-01-20 15:10:28 +00:00
Yury G. Kudryashov
2e92a0cd12 cmake-2.8.3
svn path=/nixpkgs/trunk/; revision=25859
2011-02-09 21:08:53 +00:00
Yury G. Kudryashov
48c13f4096 Update cmake
Use system libraries, make curses optional, add optional qt4 gui etc.

svn path=/nixpkgs/trunk/; revision=23810
2010-09-15 18:37:21 +00:00