precice: fix output and cmake
This commit is contained in:
parent
45158b5c65
commit
50f3a9f100
@ -0,0 +1,112 @@
|
||||
From 078cc28a3ece0dcc4033961090a6e5d6e63b3ec5 Mon Sep 17 00:00:00 2001
|
||||
From: Scriptkiddi <fritz@otlinghaus.it>
|
||||
Date: Sat, 4 Jan 2020 17:59:32 +0100
|
||||
Subject: [PATCH] Fix the install target dirs to use the CMAKE flags
|
||||
|
||||
---
|
||||
CMakeLists.txt | 27 ++++++++++++++-------------
|
||||
1 file changed, 14 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 96b9d1b5..ff8191ae 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -5,7 +5,7 @@ project(preCICE VERSION 1.6.1 LANGUAGES CXX)
|
||||
|
||||
#
|
||||
# Overview of this configuration
|
||||
-#
|
||||
+#
|
||||
# PREAMBLE
|
||||
# Setup Options
|
||||
# Find Mandatory Dependencies
|
||||
@@ -30,6 +30,7 @@ include(CheckCXX11Library)
|
||||
include(CopyTargetProperty)
|
||||
include(XSDKMacros)
|
||||
include(Validation)
|
||||
+include(GNUInstallDirs)
|
||||
|
||||
# CMake Policies
|
||||
|
||||
@@ -197,7 +198,7 @@ if(CMAKE_VERSION VERSION_LESS "3.11")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-# Add precice as an empty target
|
||||
+# Add precice as an empty target
|
||||
add_library(precice ${preCICE_DUMMY})
|
||||
set_target_properties(precice PROPERTIES
|
||||
# precice is a C++11 project
|
||||
@@ -267,7 +268,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/cmake/DetectGitRevision.cmake)
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/precice/impl/versions.hpp.in" "${PROJECT_BINARY_DIR}/src/precice/impl/versions.hpp" @ONLY)
|
||||
|
||||
# Includes Configuration
|
||||
-target_include_directories(precice PUBLIC
|
||||
+target_include_directories(precice PUBLIC
|
||||
$<BUILD_INTERFACE:${preCICE_SOURCE_DIR}/src>
|
||||
$<BUILD_INTERFACE:${preCICE_BINARY_DIR}/src>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
@@ -282,7 +283,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/src/sources.cmake)
|
||||
#
|
||||
|
||||
add_executable(binprecice "src/drivers/main.cpp")
|
||||
-target_link_libraries(binprecice
|
||||
+target_link_libraries(binprecice
|
||||
PRIVATE
|
||||
Threads::Threads
|
||||
precice
|
||||
@@ -365,18 +366,18 @@ include(${CMAKE_CURRENT_LIST_DIR}/src/tests.cmake)
|
||||
# binprecice - the precice binary
|
||||
install(TARGETS precice binprecice
|
||||
EXPORT preciceTargets
|
||||
- LIBRARY DESTINATION lib
|
||||
- ARCHIVE DESTINATION lib
|
||||
- RUNTIME DESTINATION bin
|
||||
- PUBLIC_HEADER DESTINATION include/precice
|
||||
- INCLUDES DESTINATION include/precice
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/static
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/precice
|
||||
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/precice
|
||||
)
|
||||
|
||||
if(PRECICE_InstallTest)
|
||||
# Install the testprecice target
|
||||
install(TARGETS testprecice
|
||||
EXPORT preciceTargets
|
||||
- RUNTIME DESTINATION bin
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
# Install the resources necessary for the tests
|
||||
@@ -396,7 +397,7 @@ endif()
|
||||
install(EXPORT preciceTargets
|
||||
FILE preciceTargets.cmake
|
||||
NAMESPACE precice::
|
||||
- DESTINATION lib/cmake/precice
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/precice
|
||||
)
|
||||
|
||||
# Generate a Package Config File for precice
|
||||
@@ -408,7 +409,7 @@ write_basic_package_version_file("preciceConfigVersion.cmake"
|
||||
|
||||
# Install the Config and the ConfigVersion files
|
||||
install(FILES "cmake/preciceConfig.cmake" "${preCICE_BINARY_DIR}/preciceConfigVersion.cmake"
|
||||
- DESTINATION lib/cmake/precice
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/precice
|
||||
)
|
||||
|
||||
# Setup the config in the build directory
|
||||
@@ -477,7 +478,7 @@ configure_file(
|
||||
"lib/pkgconfig/libprecice.pc"
|
||||
@ONLY
|
||||
)
|
||||
-install(DIRECTORY "${preCICE_BINARY_DIR}/lib/pkgconfig"
|
||||
+install(DIRECTORY "${preCICE_BINARY_DIR}/lib/pkgconfig"
|
||||
DESTINATION lib
|
||||
)
|
||||
|
||||
--
|
||||
2.23.1
|
||||
|
@ -1,26 +1,35 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, gcc, boost, eigen, libxml2, openmpi, python2, python2Packages }:
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, gcc, boost, eigen, libxml2, openmpi, python3, python3Packages }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "precice";
|
||||
version = "1.6.1";
|
||||
version = "2020-01-20";
|
||||
# Todo next release switch back to versioning but for python3 support master is needed
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "precice";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "00631zw6cpm67j35cwad04nwgfcvlxa8p660fwz30pgj2hzdx3d2";
|
||||
rev = "9f778290416416255fc73a495e962def301648b0";
|
||||
sha256 = "1ij43qjbf1aq3lh91gqpviajc8lyl7qkxfccmj5md5vwf88vjaip";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
cmakeFlags="-DBUILD_SHARED_LIBS=ON -DPETSC=off"
|
||||
'';
|
||||
cmakeFlags = [
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
"-DPETSC=off"
|
||||
"-DPYTHON_LIBRARIES=${python3.libPrefix}"
|
||||
"-DPYTHON_INCLUDE_DIR=${python3}/include/${python3.libPrefix}m"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake gcc ];
|
||||
buildInputs = [ boost eigen libxml2 openmpi python2 python2Packages.numpy ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp libprecice.so libprecice.so.1.6.1 $out/lib/
|
||||
'';
|
||||
buildInputs = [ boost eigen libxml2 openmpi python3 python3Packages.numpy ];
|
||||
patches = [
|
||||
./0001-Fix-the-install-target-dirs-to-use-the-CMAKE-flags.patch # CMake Packaging is not perfect upstream, after this PR it is https://github.com/precice/precice/pull/577/files
|
||||
];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
substituteInPlace "$out"/lib/cmake/precice/preciceTargets.cmake \
|
||||
--replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include;' 'INTERFACE_INCLUDE_DIRECTORIES "'$out/include';'
|
||||
''; # Check if this can be removed after upstream PR 577
|
||||
|
||||
meta = {
|
||||
description = "preCICE stands for Precise Code Interaction Coupling Environment";
|
||||
@ -31,3 +40,4 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user