Merge pull request #14668 from abbradar/cmake-fixes

Fix CMake w. multiple outputs
This commit is contained in:
Michael Raskin 2016-04-14 13:00:57 +00:00
commit ca0f53bcda
5 changed files with 67 additions and 82 deletions

View file

@ -23,8 +23,6 @@ stdenv.mkDerivation {
buildInputs = [ cmake libsndfile flex bison alsaLib libpulseaudio tcltk ]; buildInputs = [ cmake libsndfile flex bison alsaLib libpulseaudio tcltk ];
NIX_LDFLAGS="-L${stdenv.cc.libc.out}/lib";
meta = { meta = {
description = "sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms"; description = "sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
homepage = http://www.csounds.com/; homepage = http://www.csounds.com/;

View file

@ -21,7 +21,6 @@ stdenv.mkDerivation rec {
]; ];
cmakeFlags = "-DBUILD_SHARED_LIBS=ON"; cmakeFlags = "-DBUILD_SHARED_LIBS=ON";
NIX_LDFLAGS= "-lpthread -L${stdenv.cc.libc.out}/lib";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time"; description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";

View file

@ -58,11 +58,14 @@ stdenv.mkDerivation rec {
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;
preConfigure = optionalString (stdenv ? glibc) preConfigure = with stdenv; optionalString (stdenv ? glibc)
'' ''
source $setupHook source $setupHook
fixCmakeFiles . fixCmakeFiles .
substituteInPlace Modules/Platform/UnixPaths.cmake --subst-var-by glibc ${stdenv.glibc} substituteInPlace Modules/Platform/UnixPaths.cmake \
--subst-var-by glibc_bin ${glibc.bin or glibc} \
--subst-var-by glibc_dev ${glibc.dev or glibc} \
--subst-var-by glibc_lib ${glibc.out or glibc}
''; '';
meta = { meta = {

View file

@ -1,31 +1,20 @@
diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake diff -ru3 cmake-3.4.3/Modules/Platform/UnixPaths.cmake cmake-3.4.3-new/Modules/Platform/UnixPaths.cmake
index 20ee1d1..39834e6 100644 --- cmake-3.4.3/Modules/Platform/UnixPaths.cmake 2016-01-25 19:57:19.000000000 +0300
--- a/Modules/Platform/UnixPaths.cmake +++ cmake-3.4.3-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:20:08.963492213 +0300
+++ b/Modules/Platform/UnixPaths.cmake @@ -32,9 +32,6 @@
@@ -33,64 +33,18 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) # List common installation prefixes. These will be used for all
# search types. # search types.
list(APPEND CMAKE_SYSTEM_PREFIX_PATH list(APPEND CMAKE_SYSTEM_PREFIX_PATH
# Standard - # Standard
- /usr/local /usr / - /usr/local /usr /
- -
- # CMake install location # CMake install location
- "${_CMAKE_INSTALL_DIR}" "${_CMAKE_INSTALL_DIR}"
- ) )
-if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) @@ -53,44 +50,25 @@
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # Project install destination. # List common include file locations not under the common prefixes.
- "${CMAKE_INSTALL_PREFIX}" list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- )
- if(CMAKE_STAGING_PREFIX)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # User-supplied staging prefix.
- "${CMAKE_STAGING_PREFIX}"
- )
- endif()
-endif()
-
-# List common include file locations not under the common prefixes.
-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- # Windows API on Cygwin - # Windows API on Cygwin
- /usr/include/w32api - /usr/include/w32api
- -
@ -36,9 +25,10 @@ index 20ee1d1..39834e6 100644
- /usr/pkg/include - /usr/pkg/include
- /opt/csw/include /opt/include - /opt/csw/include /opt/include
- /usr/openwin/include - /usr/openwin/include
- ) + @glibc_dev@/include
)
- -
-list(APPEND CMAKE_SYSTEM_LIBRARY_PATH list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- # Windows API on Cygwin - # Windows API on Cygwin
- /usr/lib/w32api - /usr/lib/w32api
- -
@ -49,26 +39,26 @@ index 20ee1d1..39834e6 100644
- /usr/pkg/lib - /usr/pkg/lib
- /opt/csw/lib /opt/lib - /opt/csw/lib /opt/lib
- /usr/openwin/lib - /usr/openwin/lib
- ) + @glibc_lib@/lib
- )
-list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
- /usr/pkg/bin - /usr/pkg/bin
+ "@glibc_bin@" + @glibc_bin@/bin
) )
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 - /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
+ "@glibc_lib@/lib" + @glibc_lib@/lib
) )
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include - /usr/include
+ "@glibc_dev@/include" + @glibc_dev@/include
) )
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include - /usr/include
+ "@glibc_dev@/include" + @glibc_dev@/include
) )
# Enable use of lib64 search path variants by default. # Enable use of lib64 search path variants by default.

View file

@ -1,8 +1,7 @@
diff --git a/Modules/Platform/Linux.cmake b/Modules/Platform/Linux.cmake diff -ru3 cmake-2.8.12.2/Modules/Platform/Linux.cmake cmake-2.8.12.2-new/Modules/Platform/Linux.cmake
index fe8e003..378512c 100644 --- cmake-2.8.12.2/Modules/Platform/Linux.cmake 2014-01-16 21:15:08.000000000 +0400
--- a/Modules/Platform/Linux.cmake +++ cmake-2.8.12.2-new/Modules/Platform/Linux.cmake 2016-04-13 22:00:32.928575740 +0300
+++ b/Modules/Platform/Linux.cmake @@ -36,22 +36,11 @@
@@ -36,13 +36,13 @@ else()
# checking the platform every time. This option is advanced enough # checking the platform every time. This option is advanced enough
# that only package maintainers should need to adjust it. They are # that only package maintainers should need to adjust it. They are
# capable of providing a setting on the command line. # capable of providing a setting on the command line.
@ -10,46 +9,40 @@ index fe8e003..378512c 100644
- set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL - set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
- "Install .so files without execute permission.") - "Install .so files without execute permission.")
- else() - else()
+ # if(EXISTS "/etc/debian_version") - set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+ # set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL - "Install .so files without execute permission.")
+ # "Install .so files without execute permission.")
+ # else()
set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
"Install .so files without execute permission.")
- endif() - endif()
+ # endif() + set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+ "Install .so files without execute permission.")
endif() endif()
# Match multiarch library directory names. # Match multiarch library directory names.
@@ -52,6 +52,6 @@ include(Platform/UnixPaths) set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-linux-gnu[a-z0-9_]*")
# Debian has lib64 paths only for compatibility so they should not be include(Platform/UnixPaths)
# searched. -
-# Debian has lib64 paths only for compatibility so they should not be
-# searched.
-if(EXISTS "/etc/debian_version") -if(EXISTS "/etc/debian_version")
- set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE) - set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
-endif() -endif()
+# if(EXISTS "/etc/debian_version") diff -ru3 cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake
+# set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE) --- cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake 2014-01-16 21:15:08.000000000 +0400
+#endif() +++ cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:09:10.106362636 +0300
diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake @@ -32,9 +32,6 @@
index ccb2663..39834e6 100644 # List common installation prefixes. These will be used for all
--- a/Modules/Platform/UnixPaths.cmake
+++ b/Modules/Platform/UnixPaths.cmake
@@ -33,55 +33,18 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
# search types. # search types.
list(APPEND CMAKE_SYSTEM_PREFIX_PATH list(APPEND CMAKE_SYSTEM_PREFIX_PATH
# Standard - # Standard
- /usr/local /usr / - /usr/local /usr /
- -
- # CMake install location # CMake install location
- "${_CMAKE_INSTALL_DIR}" "${_CMAKE_INSTALL_DIR}"
-
- # Project install destination. @@ -44,44 +41,26 @@
- "${CMAKE_INSTALL_PREFIX}"
- ) # List common include file locations not under the common prefixes.
- list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
-# List common include file locations not under the common prefixes.
-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- # Windows API on Cygwin - # Windows API on Cygwin
- /usr/include/w32api - /usr/include/w32api
- -
@ -60,9 +53,10 @@ index ccb2663..39834e6 100644
- /usr/pkg/include - /usr/pkg/include
- /opt/csw/include /opt/include - /opt/csw/include /opt/include
- /usr/openwin/include - /usr/openwin/include
- ) + @glibc_dev@/include
- )
-list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- # Windows API on Cygwin - # Windows API on Cygwin
- /usr/lib/w32api - /usr/lib/w32api
- -
@ -73,25 +67,26 @@ index ccb2663..39834e6 100644
- /usr/pkg/lib - /usr/pkg/lib
- /opt/csw/lib /opt/lib - /opt/csw/lib /opt/lib
- /usr/openwin/lib - /usr/openwin/lib
- ) + @glibc_lib@/lib
- )
-list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
- /usr/pkg/bin - /usr/pkg/bin
+ "@glibc@" + @glibc_bin@/bin
) )
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
- /lib /usr/lib /usr/lib32 /usr/lib64 - /lib /usr/lib /usr/lib32 /usr/lib64
+ "@glibc@/lib" + @glibc_lib@/lib
) )
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include - /usr/include
+ "@glibc@/include" + @glibc_dev@/include
) )
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include - /usr/include
+ "@glibc@/include" + @glibc_dev@/include
) )
# Enable use of lib64 search path variants by default. # Enable use of lib64 search path variants by default.