tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
febio: 3.6 -> 4.7
Emily
2 years ago
64435f50
f832d1cd
+102
-59
2 changed files
expand all
collapse all
unified
split
pkgs
by-name
fe
febio
fix-cmake.patch
package.nix
+61
-16
pkgs/by-name/fe/febio/fix-cmake.patch
···
0
0
1
--- a/CMakeLists.txt
2
+++ b/CMakeLists.txt
3
-
@@ -47,7 +47,7 @@ function(findLib libName libDir libOut)
0
0
0
0
0
0
0
0
4
find_library(TEMP NAMES ${libName}.lib ${ARGV3}.lib ${ARGV4}.lib ${ARGV5}.lib ${ARGV6}.lib
5
PATHS ${${libDir}} NO_DEFAULT_PATH)
6
else()
···
9
PATHS ${${libDir}} NO_DEFAULT_PATH)
10
endif()
11
12
-
diff --git a/FindDependencies.cmake b/FindDependencies.cmake
13
-
index 2d644005f..7261ba923 100644
14
-
--- a/FindDependencies.cmake
15
-
+++ b/FindDependencies.cmake
16
-
@@ -46,8 +46,8 @@ if(MKLROOT)
17
-
NO_DEFAULT_PATH)
18
-
19
-
find_library(MKL_OMP_LIB
20
-
- NAMES iomp5 iomp5md libiomp5md.lib
21
-
- PATHS ${MKLROOT}/../lib ${MKLROOT}/../compiler/lib
22
-
+ NAMES libiomp5@so@ libiomp5 iomp5 iomp5md libiomp5md.lib
23
-
+ PATHS ${MKLROOT}/lib ${MKLROOT}/../lib ${MKLROOT}/../compiler/lib
24
-
PATH_SUFFIXES "intel64" "intel32"
25
-
NO_DEFAULT_PATH
26
-
DOC "MKL OMP Library")
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2
+
index c1bc953edf..f6aaf92fb5 100644
3
--- a/CMakeLists.txt
4
+++ b/CMakeLists.txt
5
+
@@ -2,6 +2,7 @@
6
+
set(CMAKE_CXX_STANDARD 14)
7
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
8
+
mark_as_advanced(FORCE CMAKE_INSTALL_PREFIX)
9
+
+include(GNUInstallDirs)
10
+
11
+
project(FEBio)
12
+
set(FEBIO_LIBS FEBioFluid FEBioLib FEBioMech FEBioMix FEBioOpt FECore NumCore FEAMR FEBioRVE FEImgLib)
13
+
@@ -51,7 +52,7 @@
14
find_library(TEMP NAMES ${libName}.lib ${ARGV3}.lib ${ARGV4}.lib ${ARGV5}.lib ${ARGV6}.lib
15
PATHS ${${libDir}} NO_DEFAULT_PATH)
16
else()
···
19
PATHS ${${libDir}} NO_DEFAULT_PATH)
20
endif()
21
22
+
@@ -154,7 +155,7 @@
23
+
##### Find Source Files #####
24
+
25
+
macro(findHdrSrc name)
26
+
- file(GLOB HDR_${name} "${name}/*.h")
27
+
+ file(GLOB HDR_${name} "${name}/*.h" "${name}/*.hpp")
28
+
file(GLOB SRC_${name} "${name}/*.cpp")
29
+
endmacro()
30
+
31
+
@@ -171,8 +172,9 @@
32
+
33
+
macro(addLib name TYPE)
34
+
string(TOLOWER ${name} lname)
35
+
- add_library(${lname} ${TYPE} ${HDR_${name}} ${SRC_${name}})
36
+
+ add_library(${lname} ${TYPE} ${SRC_${name}})
37
+
set_property(TARGET ${lname} PROPERTY AUTOGEN_BUILD_DIR ${CMAKE_BINARY_DIR}/CMakeFiles/AutoGen/${name}_autogen)
38
+
+ target_sources(${lname} PUBLIC FILE_SET HEADERS TYPE HEADERS FILES ${HDR_${name}})
39
+
40
+
if(NOT WIN32)
41
+
set_property(TARGET ${lname} PROPERTY POSITION_INDEPENDENT_CODE ON)
42
+
@@ -181,6 +183,8 @@
43
+
if(APPLE)
44
+
target_link_libraries(${lname} PRIVATE "-undefined dynamic_lookup")
45
+
endif()
46
+
+
47
+
+ install(TARGETS ${lname} FILE_SET HEADERS)
48
+
endmacro()
49
+
50
+
foreach(name IN LISTS FEBIO_LIBS)
51
+
@@ -194,6 +198,7 @@
52
+
##### Set up executable compilation #####
53
+
file(GLOB SOURCES "FEBio/*.cpp")
54
+
add_executable (febio4 ${SOURCES})
55
+
+install(TARGETS febio4)
56
+
57
+
if(WIN32)
58
+
target_compile_options(febio4 PRIVATE /openmp)
59
+
@@ -269,7 +274,6 @@
60
+
mark_as_advanced(EXTRA_INC)
61
+
62
+
##### Setup includes, defnitions, and linking options #####
63
+
-include_directories(${PROJECT_SOURCE_DIR})
64
+
65
+
# Link LEVMAR
66
+
if(USE_LEVMAR)
67
+
@@ -438,3 +442,4 @@
68
+
file(WRITE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/febio.xml "${filedata}")
69
+
endif()
70
+
71
+
+install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/febio.xml TYPE BIN)
+41
-43
pkgs/by-name/fe/febio/package.nix
···
1
{
2
lib,
3
stdenv,
0
4
fetchFromGitHub,
0
0
5
cmake,
6
-
boost,
7
-
eigen,
8
-
libxml2,
9
-
mpi,
10
-
python3,
11
mklSupport ? true,
12
mkl,
13
-
substituteAll,
14
}:
15
16
-
stdenv.mkDerivation rec {
0
0
0
0
17
pname = "FEBio";
18
-
version = "3.6";
19
20
src = fetchFromGitHub {
21
owner = "febiosoftware";
22
-
repo = pname;
23
-
rev = "v${version}";
24
-
sha256 = "187s4lyzr806xla3smq3lsvj3f6wxlhfkban89w0fnyfmfb8w9am";
25
};
26
27
patches = [
0
28
(substituteAll {
29
-
src = ./fix-cmake.patch; # cannot find mkl libraries without this
30
so = stdenv.hostPlatform.extensions.sharedLibrary;
31
})
32
-
];
33
34
-
cmakeFlags = lib.optional mklSupport "-DUSE_MKL=On" ++ lib.optional mklSupport "-DMKLROOT=${mkl}";
35
-
36
-
env.CXXFLAGS = lib.optionalString stdenv.isLinux "-include cstring";
37
-
38
-
installPhase = ''
39
-
runHook preInstall
0
40
41
-
mkdir -p $out/include
42
-
cp -R lib bin $out/
43
-
cp -R ../FECore \
44
-
../FEBioFluid \
45
-
../FEBioLib \
46
-
../FEBioMech \
47
-
../FEBioMix \
48
-
../FEBioOpt \
49
-
../FEBioPlot \
50
-
../FEBioXML \
51
-
../NumCore \
52
-
$out/include
53
54
-
runHook postInstall
55
-
'';
0
0
56
57
-
nativeBuildInputs = [ cmake ];
58
-
buildInputs = [
59
-
boost
60
-
eigen
61
-
libxml2
62
-
mpi
63
-
python3
64
-
python3.pkgs.numpy
65
-
] ++ lib.optional mklSupport mkl;
66
67
meta = {
68
description = "FEBio Suite Solver";
···
71
platforms = lib.platforms.unix;
72
maintainers = with lib.maintainers; [ Scriptkiddi ];
73
};
74
-
}
···
1
{
2
lib,
3
stdenv,
4
+
overrideSDK,
5
fetchFromGitHub,
6
+
fetchpatch2,
7
+
substituteAll,
8
cmake,
9
+
ninja,
10
+
zlib,
11
+
darwin,
0
0
12
mklSupport ? true,
13
mkl,
0
14
}:
15
16
+
let
17
+
stdenv' = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
18
+
in
19
+
20
+
stdenv'.mkDerivation (finalAttrs: {
21
pname = "FEBio";
22
+
version = "4.7";
23
24
src = fetchFromGitHub {
25
owner = "febiosoftware";
26
+
repo = "FEBio";
27
+
rev = "v${finalAttrs.version}";
28
+
hash = "sha256-RRdIOyXg4jYW76ABfJdMfVtCYMLYFdvyOI98nHXCof8=";
29
};
30
31
patches = [
32
+
# Fix library searching and installation
33
(substituteAll {
34
+
src = ./fix-cmake.patch;
35
so = stdenv.hostPlatform.extensions.sharedLibrary;
36
})
0
37
38
+
# Fixed missing header include for strcpy
39
+
# https://github.com/febiosoftware/FEBio/pull/92
40
+
(fetchpatch2 {
41
+
url = "https://github.com/febiosoftware/FEBio/commit/ad9e80e2aa8737828855458a703822f578db2fd3.patch?full_index=1";
42
+
hash = "sha256-/uLnJB/oAwLQnsZtJnUlaAEpyZVLG6o2riRwwMCH8rI=";
43
+
})
44
+
];
45
46
+
cmakeFlags = lib.optionals mklSupport [
47
+
(lib.cmakeBool "USE_MKL" true)
48
+
(lib.cmakeFeature "MKLROOT" "${mkl}")
49
+
];
0
0
0
0
0
0
0
0
50
51
+
nativeBuildInputs = [
52
+
cmake
53
+
ninja
54
+
];
55
56
+
buildInputs =
57
+
[ zlib ]
58
+
++ lib.optionals mklSupport [ mkl ]
59
+
++ lib.optionals stdenv.isDarwin [
60
+
darwin.apple_sdk.frameworks.CoreGraphics
61
+
darwin.apple_sdk.frameworks.CoreVideo
62
+
darwin.apple_sdk.frameworks.Accelerate
63
+
];
0
64
65
meta = {
66
description = "FEBio Suite Solver";
···
69
platforms = lib.platforms.unix;
70
maintainers = with lib.maintainers; [ Scriptkiddi ];
71
};
72
+
})