g2o: build g2o_viewer and disable impure SSE autodetection

This commit is contained in:
Ben Wolsieffer 2019-05-17 23:54:08 -04:00
parent f22a561402
commit d00ff51215
2 changed files with 52 additions and 3 deletions

View file

@ -1,4 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake, eigen, suitesparse }: { lib, stdenv, fetchFromGitHub, cmake, eigen, suitesparse, libGLU, qt5
, libsForQt5, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "g2o"; pname = "g2o";
@ -11,8 +12,31 @@ stdenv.mkDerivation rec {
sha256 = "1rgrz6zxiinrik3lgwgvsmlww1m2fnpjmvcx1mf62xi1s2ma5w2i"; sha256 = "1rgrz6zxiinrik3lgwgvsmlww1m2fnpjmvcx1mf62xi1s2ma5w2i";
}; };
nativeBuildInputs = [ cmake ]; # Removes a reference to gcc that is only used in a debug message
buildInputs = [ eigen suitesparse ]; patches = [ ./remove-compiler-reference.patch ];
nativeBuildInputs = [ cmake makeWrapper ];
buildInputs = [ eigen suitesparse libGLU qt5.qtbase libsForQt5.libqglviewer ];
cmakeFlags = [
# Detection script is broken
"-DQGLVIEWER_INCLUDE_DIR=${libsForQt5.libqglviewer}/include/QGLViewer"
"-DG2O_BUILD_EXAMPLES=OFF"
] ++ lib.optionals stdenv.isx86_64 ([ "-DDO_SSE_AUTODETECT=OFF" ] ++ {
"default" = [ "-DDISABLE_SSE3=ON" "-DDISABLE_SSE4_1=ON" "-DDISABLE_SSE4_2=ON" "-DDISABLE_SSE4_A=ON" ];
"westmere" = [ "-DDISABLE_SSE4_A=ON" ];
"sandybridge" = [ "-DDISABLE_SSE4_A=ON" ];
"ivybridge" = [ "-DDISABLE_SSE4_A=ON" ];
"haswell" = [ "-DDISABLE_SSE4_A=ON" ];
"broadwell" = [ "-DDISABLE_SSE4_A=ON" ];
"skylake" = [ "-DDISABLE_SSE4_A=ON" ];
"skylake-avx512" = [ "-DDISABLE_SSE4_A=ON" ];
}.${stdenv.hostPlatform.platform.gcc.arch or "default"});
postInstall = ''
wrapProgram $out/bin/g2o_viewer \
--prefix QT_PLUGIN_PATH : "${qt5.qtbase}/${qt5.qtbase.qtPluginPrefix}"
'';
meta = { meta = {
description = "A General Framework for Graph Optimization"; description = "A General Framework for Graph Optimization";

View file

@ -0,0 +1,25 @@
From b9bfed09e4e3c481b7eb36bee1ff4202ccf69dee Mon Sep 17 00:00:00 2001
From: Ben Wolsieffer <benwolsieffer@gmail.com>
Date: Fri, 17 May 2019 19:05:36 -0400
Subject: [PATCH] Remove reference to compiler.
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a3f66dd..bb05bd0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -371,7 +371,7 @@ set(G2O_HAVE_CHOLMOD ${CHOLMOD_FOUND})
set(G2O_HAVE_CSPARSE ${CSPARSE_FOUND})
set(G2O_SHARED_LIBS ${BUILD_SHARED_LIBS})
set(G2O_LGPL_SHARED_LIBS ${BUILD_LGPL_SHARED_LIBS})
-set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER}")
+set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} unknown")
configure_file(config.h.in "${PROJECT_BINARY_DIR}/g2o/config.h")
install(FILES ${PROJECT_BINARY_DIR}/g2o/config.h DESTINATION ${INCLUDES_DESTINATION}/g2o)
--
2.21.0