forked from mirrors/nixpkgs
souffle: add darwin support (#208373)
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
This commit is contained in:
parent
90fb934fec
commit
4141729d9c
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
{ lib, stdenv, fetchFromGitHub, fetchpatch
|
||||
, bash-completion, perl, ncurses, zlib, sqlite, libffi
|
||||
, mcpp, cmake, bison, flex, doxygen, graphviz
|
||||
, makeWrapper
|
||||
|
@ -19,6 +19,17 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-wdTBSmyA2I+gaSV577NNKA2oY2fdVTGmvV7h15NY1tU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./threads.patch
|
||||
(fetchpatch {
|
||||
name = "missing-override.patch";
|
||||
url = "https://github.com/souffle-lang/souffle/commit/da2d778f0cca94f206686546fa56b9ffc738ad75.patch";
|
||||
sha256 = "Oefm3vRRwOyom94oGSOK2w9m23gkbJ++9gcWrdLlkyk=";
|
||||
})
|
||||
];
|
||||
|
||||
hardeningDisable = lib.optionals stdenv.isDarwin [ "strictoverflow" ];
|
||||
|
||||
nativeBuildInputs = [ bison cmake flex mcpp doxygen graphviz makeWrapper perl ];
|
||||
buildInputs = [ bash-completion ncurses zlib sqlite libffi ];
|
||||
# these propagated inputs are needed for the compiled Souffle mode to work,
|
||||
|
@ -35,7 +46,6 @@ stdenv.mkDerivation rec {
|
|||
outputs = [ "out" ];
|
||||
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
description = "A translator of declarative Datalog programs into the C++ language";
|
||||
homepage = "https://souffle-lang.github.io/";
|
||||
platforms = platforms.unix;
|
||||
|
|
31
pkgs/development/compilers/souffle/threads.patch
Normal file
31
pkgs/development/compilers/souffle/threads.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 73d5c3c84..e4b0dbfd1 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -104,13 +104,6 @@ option(SOUFFLE_CUSTOM_GETOPTLONG "Enable/Disable custom getopt_long implementati
|
||||
cmake_dependent_option(SOUFFLE_USE_LIBCPP "Link to libc++ instead of libstdc++" ON
|
||||
"CMAKE_CXX_COMPILER_ID STREQUAL Clang" OFF)
|
||||
|
||||
-# Using Clang? Likely want to use `lld` too.
|
||||
-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
||||
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld")
|
||||
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld")
|
||||
-endif()
|
||||
-
|
||||
# Add aditional modules to CMake
|
||||
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
||||
|
||||
@@ -247,7 +240,11 @@ endif()
|
||||
# pthreads
|
||||
# --------------------------------------------------
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
-find_package(Threads REQUIRED)
|
||||
+set(CMAKE_THREAD_LIBS_INIT "-lpthread")
|
||||
+set(CMAKE_HAVE_THREADS_LIBRARY 1)
|
||||
+set(CMAKE_USE_WIN32_THREADS_INIT 0)
|
||||
+set(CMAKE_USE_PTHREADS_INIT 1)
|
||||
+set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
|
||||
# --------------------------------------------------
|
||||
# OpenMP
|
Loading…
Reference in a new issue