From patchwork Sat Dec 3 09:04:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liliana Marie Prikler X-Patchwork-Id: 45037 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1654527BBE9; Sat, 3 Dec 2022 10:02:31 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 851E827BBEB for ; Sat, 3 Dec 2022 10:02:27 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p1PLQ-0005Sg-Hy; Sat, 03 Dec 2022 05:02:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p1PLO-0005Pc-ME for guix-patches@gnu.org; Sat, 03 Dec 2022 05:02:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p1PLO-0001ni-2j for guix-patches@gnu.org; Sat, 03 Dec 2022 05:02:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p1PLN-0007Rf-US for guix-patches@gnu.org; Sat, 03 Dec 2022 05:02:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#59800] [PATCH 5/5] gnu: Add esmini. References: <034d0ae2b33c04dc7a5f8f75ab285e20937ce4ec.camel@gmail.com> In-Reply-To: <034d0ae2b33c04dc7a5f8f75ab285e20937ce4ec.camel@gmail.com> Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 03 Dec 2022 10:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59800 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 59800@debbugs.gnu.org Received: via spool by 59800-submit@debbugs.gnu.org id=B59800.167006167828528 (code B ref 59800); Sat, 03 Dec 2022 10:02:01 +0000 Received: (at 59800) by debbugs.gnu.org; 3 Dec 2022 10:01:18 +0000 Received: from localhost ([127.0.0.1]:51499 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1PKU-0007P7-AE for submit@debbugs.gnu.org; Sat, 03 Dec 2022 05:01:18 -0500 Received: from mail-ej1-f68.google.com ([209.85.218.68]:46787) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1PKM-0007NR-UV for 59800@debbugs.gnu.org; Sat, 03 Dec 2022 05:01:00 -0500 Received: by mail-ej1-f68.google.com with SMTP id bj12so16821985ejb.13 for <59800@debbugs.gnu.org>; Sat, 03 Dec 2022 02:00:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:message-id:content-transfer-encoding:to:subject:date :from:from:to:cc:subject:date:message-id:reply-to; bh=l8DSdAvJ8RZUJLjMmAU7DQAHbs3f+u4eOxayeBqRZ6w=; b=iphkCsA2xu7sJNMtn/L8pyFqnDcQPYSFjyB1koW+nbkpLO7z+iwaOoocs98/cYyBs9 AbMPU+P9DJODVD2hFkvzsSSoeCHLoHH3sJeqdgwv6AiS3MA4BTsB/wsfX6z6M4Ng1K12 +I0qiaKSNbFrSwmwtDS4CyNFE0Ig/LcNYboGhariRhC4HvAk0C9mMzKybCf0JokqX0zA Q273nNVtPnzGgr/t3skdVP/SrEsdeHX9MreJr1xHmDEMKdz2pA4ffpLyvhkFc1SKmdH8 kVpb1IvLEm8zDvii3aPl78cbD5sqPlz6N85ANVzG0xWUHL9WIju9xGVCOmmPA5TFb8AR PjyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:content-transfer-encoding:to:subject:date :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=l8DSdAvJ8RZUJLjMmAU7DQAHbs3f+u4eOxayeBqRZ6w=; b=hHgJfviCMg5p3zzMHeqdyvfY/Q6SxVnkUZFz+CZPDLB7WCH7sIF1Z4RXAou0fGRx+K 5dRrU143DSIxOczJAA6qqtDIttiJdXkeUvVOjWLLKkbtCOGjBQnIM88Ew66hbMrKzIMv qeijOUplOtmCpjpC9R3MpE1smCVnlgfWYRE77N9Y0ZKSijC8ZtxElLq2cR/dwxH6Kk1g pwnore9aMeu1l3wcEZjT71MHx1QMALnEE+S0awdQInF9GuiC3AJDzQfgv1svViHLYeCa dlyeLIQddR7hYvY2sCiZKnezFAjPFOZ7NhShCxTJWe4ANlS6Kbp/7cTi37l33RBstvbc xUmA== X-Gm-Message-State: ANoB5pnGtis/rGiDvgzNL3tSqETafIrXr03GFppy8thZPgv4PgN4k0ou vX5KNWmvKn/+GuzREtpC2hMLBeVUAtA= X-Google-Smtp-Source: AA0mqf4T+5RQsxOzBFrUPyVLgnMCCwskS6H3qKiVsVMi9kyfiYvysGKMMmLy1SuW3y0VVN0UtRtTaw== X-Received: by 2002:a17:906:22d0:b0:7b2:a7aa:173d with SMTP id q16-20020a17090622d000b007b2a7aa173dmr3973051eja.140.1670061653055; Sat, 03 Dec 2022 02:00:53 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id t15-20020aa7d4cf000000b0046c53c3b2dfsm906869edr.38.2022.12.03.02.00.52 for <59800@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Dec 2022 02:00:52 -0800 (PST) From: Liliana Marie Prikler Date: Sat, 3 Dec 2022 10:04:27 +0100 Message-ID: <8960045e7a304fbb449f814cda3ee4d09500211d.camel@gmail.com> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/patches/esmini-no-clutter-log.patch: New file. * gnu/packages/patches/esmini-use-pkgconfig.patch: New file. * gnu/local.mk (dist_patch_DATA): Add them here. * gnu/packages/simulation.scm (esmini): New variable. --- gnu/local.mk | 2 + .../patches/esmini-no-clutter-log.patch | 30 + .../patches/esmini-use-pkgconfig.patch | 541 ++++++++++++++++++ gnu/packages/simulation.scm | 71 +++ 4 files changed, 644 insertions(+) create mode 100644 gnu/packages/patches/esmini-no-clutter-log.patch create mode 100644 gnu/packages/patches/esmini-use-pkgconfig.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1bfbe28bde..8069cedcb6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1075,6 +1075,8 @@ dist_patch_DATA = \ %D%/packages/patches/enjarify-setup-py.patch \ %D%/packages/patches/enlightenment-fix-setuid-path.patch \ %D%/packages/patches/erlang-man-path.patch \ + %D%/packages/patches/esmini-no-clutter-log.patch \ + %D%/packages/patches/esmini-use-pkgconfig.patch \ %D%/packages/patches/esmtp-add-lesmtp.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/exercism-disable-self-update.patch \ diff --git a/gnu/packages/patches/esmini-no-clutter-log.patch b/gnu/packages/patches/esmini-no-clutter-log.patch new file mode 100644 index 0000000000..0920244f78 --- /dev/null +++ b/gnu/packages/patches/esmini-no-clutter-log.patch @@ -0,0 +1,30 @@ +Don't clutter /tmp with logs. + +--- + EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp | 10 ++-------- + 1 file changed, 2 insertions(+), 8 deletions(-) + +diff --git a/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp b/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp +index 56c655dc..2750f5a6 100644 +--- a/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp ++++ b/EnvironmentSimulator/Modules/CommonMini/CommonMini.cpp +@@ -1013,14 +1013,8 @@ void Logger::OpenLogfile(std::string filename) + file_.open(filename.c_str()); + if (file_.fail()) + { +- const char* filename_tmp = std::tmpnam(NULL); +- printf("Cannot open log file: %s in working directory. Trying system tmp-file: %s\n", +- SE_Env::Inst().GetLogFilePath().c_str(), filename_tmp); +- file_.open(filename_tmp); +- if (file_.fail()) +- { +- printf("Also failed to open log file: %s. Continue without logfile, still logging to console.\n", filename_tmp); +- } ++ printf("Cannot open log file: %s in working directory. Continuing without logfile, still logging to console.\n", ++ filename.c_str()); + } + } + #endif +-- +2.38.1 + diff --git a/gnu/packages/patches/esmini-use-pkgconfig.patch b/gnu/packages/patches/esmini-use-pkgconfig.patch new file mode 100644 index 0000000000..73e1b50015 --- /dev/null +++ b/gnu/packages/patches/esmini-use-pkgconfig.patch @@ -0,0 +1,541 @@ +Find dependencies via pkg-config. + +--- + CMakeLists.txt | 16 +- + .../Applications/esmini-dyn/CMakeLists.txt | 5 +- + .../Applications/esmini/CMakeLists.txt | 1 + + EnvironmentSimulator/CMakeLists.txt | 296 +----------------- + .../Modules/Controllers/ControllerSumo.cpp | 1 - + .../Modules/RoadManager/CMakeLists.txt | 8 +- + .../Modules/ScenarioEngine/CMakeLists.txt | 15 +- + 7 files changed, 23 insertions(+), 319 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 156d9448..10ec48f9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,6 +8,7 @@ else() + cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR) + endif() + ++include(FindPkgConfig) + + project (EnvironmentSimulator) + +@@ -33,15 +34,10 @@ else () + set (LINUX false) + endif () + +-if (LINUX OR APPLE OR MINGW OR MSVC) +- set(INSTALL_DIRECTORY "${CMAKE_HOME_DIRECTORY}/bin") +-else () +- message(FATAL_ERROR "Unrecognized platform therefore there isn't an installation directory. Stopping the cmake process.") +-endif () +- + set(INSTALL_DIRECTORY_CODE_EXAMPLES "${CMAKE_HOME_DIRECTORY}/code-examples-bin") + +-set(PUGIXML_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals/pugixml") ++find_package(pugixml) ++ + set(EXPR_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals/expr") + if(MSVC) + set(DIRENT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals/dirent/win") +@@ -61,10 +57,14 @@ set(ENABLE_SANITIZERS False CACHE BOOL "Enable sanitizers (Only valid for Linux + + + if (USE_OSG) ++ pkg_check_modules(OSG REQUIRED openscenegraph osgdb_jpeg osgdb_osg ++ osgdb_serializers_osg ++ osgdb_serializers_osgsim) + add_definitions(-D_USE_OSG) + endif (USE_OSG) + + if (USE_OSI) ++ find_package(open_simulation_interface REQUIRED) + add_definitions(-D_USE_OSI) + endif (USE_OSI) + +@@ -73,6 +73,7 @@ if (USE_SUMO) + endif (USE_SUMO) + + if (USE_GTEST) ++ find_package(GTest REQUIRED) + add_definitions(-D_USE_GTEST) + endif (USE_GTEST) + +@@ -90,5 +91,4 @@ if( NOT EXISTS "test/OSC-ALKS-scenarios/.git" ) + endif() + + # Add variables to global scope, e.g. when esmini is used as submodule +-set(PUGIXML_INCLUDE_DIR ${PUGIXML_INCLUDE_DIR} CACHE INTERNAL "") + set(EXPR_INCLUDE_DIR ${EXPR_INCLUDE_DIR} CACHE INTERNAL "") +diff --git a/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt b/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt +index 83d89420..e15062d3 100644 +--- a/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt ++++ b/EnvironmentSimulator/Applications/esmini-dyn/CMakeLists.txt +@@ -1,7 +1,7 @@ + + include_directories ( + ${SCENARIOENGINE_DLL_INCLUDE_DIR} +- ${COMMON_MINI_INCLUDE_DIR} ++ ${COMMON_MINI_INCLUDE_DIR} + ${OSI_INCLUDE_DIR} + ) + +@@ -19,11 +19,12 @@ link_directories( ${OSI_DIR}/lib ) + add_executable ( ${TARGET} ${SOURCES} ${INCLUDES} ) + + +-target_link_libraries ( ++target_link_libraries ( + ${TARGET} + esminiLib + CommonMini + ${TIME_LIB} ++ pugixml::pugixml + project_options + ) + +diff --git a/EnvironmentSimulator/Applications/esmini/CMakeLists.txt b/EnvironmentSimulator/Applications/esmini/CMakeLists.txt +index 6890c26a..a088ebdc 100644 +--- a/EnvironmentSimulator/Applications/esmini/CMakeLists.txt ++++ b/EnvironmentSimulator/Applications/esmini/CMakeLists.txt +@@ -44,6 +44,7 @@ target_link_libraries ( + ${sumo_libs} + ${TIME_LIB} + ${SOCK_LIB} ++ pugixml::pugixml + project_options + ) + +diff --git a/EnvironmentSimulator/CMakeLists.txt b/EnvironmentSimulator/CMakeLists.txt +index 157e8fe0..e771231a 100644 +--- a/EnvironmentSimulator/CMakeLists.txt ++++ b/EnvironmentSimulator/CMakeLists.txt +@@ -1,7 +1,3 @@ +- +-set ( FILE_STORAGE "esmini" ) # "dropbox", "google", "esmini" (limited GB/Day) +-set ( MODEL_STORAGE "esmini" ) # "dropbox", "google", "esmini" (limited GB/Day) +- + set ( VIEWER_BASE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/ViewerBase" ) + set ( PLAYER_BASE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/PlayerBase" ) + set ( ROADMANAGER_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/RoadManager" ) +@@ -17,88 +13,12 @@ set ( CONTROLLERS_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Modules/Controllers") + + # OpenSceneGraph package adapted for this project + set ( OSG_VERSION "osg161" ) +-set ( OSG_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/OpenSceneGraph" ) +-set ( OSI_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/OSI" ) +-set ( SUMO_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/SUMO" ) + + # GoogleTest package + set ( GTEST_VERSION "1.10.1" ) +-set ( GTEST_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../externals/googletest" ) + + set( CMAKE_VERBOSE_MAKEFILE true ) + +-if ( ${FILE_STORAGE} STREQUAL "dropbox" ) +- if (APPLE) +- set ( OSG_PACKAGE_URL https://www.dropbox.com/s/d0czj6b89p9jyvv/OpenSceneGraph_mac.7z?dl=1 ) +- set ( OSI_PACKAGE_URL https://www.dropbox.com/s/m62v19gp0m73dte/osi_mac.7z?dl=1 ) +- set ( SUMO_PACKAGE_URL https://www.dropbox.com/s/0x8kwztk7nmacs1/sumo_mac.7z?dl=1 ) +- elseif (LINUX) +- set ( OSG_PACKAGE_URL https://www.dropbox.com/s/4ug0gmkgdavzyb4/osg_linux_glibc_2_31_gcc_7_5_0.7z?dl=1 ) +- set ( OSI_PACKAGE_URL https://dl.dropboxusercontent.com/s/kwtdg0c1c8pawa1/osi_linux.7z?dl=1 ) +- set ( SUMO_PACKAGE_URL https://dl.dropboxusercontent.com/s/gfwtqd3gf76f86a/sumo_linux.7z?dl=1 ) +- set ( GTEST_PACKAGE_URL https://dl.dropboxusercontent.com/s/si7jsjjsy5bpoym/googletest_linux.7z?dl=1 ) +- elseif (MSVC) +- set ( OSG_PACKAGE_URL https://dl.dropboxusercontent.com/s/e95hnoo782p40uc/OpenSceneGraph_v10.7z?dl=1 ) +- set ( OSI_PACKAGE_URL https://dl.dropboxusercontent.com/s/an58ckp2qfx5069/osi_v10.7z?dl=1 ) +- set ( SUMO_PACKAGE_URL https://dl.dropboxusercontent.com/s/5jtpnnd61wonxuh/sumo_v10.7z?dl=1 ) +- set ( GTEST_PACKAGE_URL https://dl.dropboxusercontent.com/s/aaiehwzc6woqbc6/googletest_v10.7z?dl=1 ) +- elseif (MINGW) +- message("MinGW, enforcing slimmed esmini") +- else () +- message ("Unsupported configuration") +- endif () +-elseif ( ${FILE_STORAGE} STREQUAL "google" ) +- if (APPLE) +- set ( OSG_PACKAGE_URL https://drive.google.com/u/1/uc?id=1mfn_vrcXBoFBekR_t8RXTWB4sD59JD7p&export=download ) +- set ( OSI_PACKAGE_URL https://drive.google.com/u/1/uc?id=1UVzO8cPQaDU9KVn9v2v8Suj0uUw1dzYI&export=download ) +- set ( SUMO_PACKAGE_URL https://drive.google.com/u/1/uc?id=1FAve0-MlJPv6lUZy0HvriZI7xstLAzvX&export=download ) +- elseif (LINUX) +- set ( OSG_PACKAGE_URL https://drive.google.com/u/1/uc?id=1Ya1bLp_0-qqlhs67WAwbGW7l37wqP3o2&export=download ) +- set ( OSI_PACKAGE_URL https://drive.google.com/u/1/uc?id=1Q8O9YciIC0BPEszIKtQ2UW9KcVRZS4iB&export=download ) +- set ( SUMO_PACKAGE_URL https://drive.google.com/u/1/uc?id=1m4znxNIXapP0D-l21oIm2l7L5ti-JbZH&export=download ) +- set ( GTEST_PACKAGE_URL https://drive.google.com/u/1/uc?id=1Hyr9eJX2GmgpYwZhx14xOoXlZ2j-FY_p&export=download ) +- elseif (MSVC) +- set ( OSG_PACKAGE_URL https://drive.google.com/u/1/uc?id=1RTag0aUn_pJPK697j0-E72ABW10wZvOm&export=download ) +- set ( OSI_PACKAGE_URL https://drive.google.com/u/1/uc?id=1pcQcVHUESOk2Wmi-zUA7uzdxxE6iwRJx&export=download ) +- set ( SUMO_PACKAGE_URL https://drive.google.com/u/1/uc?id=18PhbSLyvs0IGWTAY3YBoYzpVnMFPbOuR&export=download ) +- set ( GTEST_PACKAGE_URL https://drive.google.com/u/1/uc?id=1So-3gtrmEdW9RhEvVQisj1QFksHM_otU&export=download ) +- elseif (MINGW) +- message("MinGW, enforcing slimmed esmini") +- else () +- message ("Unsupported configuration") +- endif () +-elseif ( ${FILE_STORAGE} STREQUAL "esmini" ) +- if (APPLE) +- set ( OSG_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/OpenSceneGraph_mac.7z ) +- set ( OSI_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osi_mac.7z ) +- set ( SUMO_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/sumo_mac.7z ) +- elseif (LINUX) +- set ( OSG_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osg_linux_glibc_2_31_gcc_7_5_0.7z ) +- set ( OSI_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osi_linux.7z ) +- set ( SUMO_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/sumo_linux.7z ) +- set ( GTEST_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/googletest_linux.7z ) +- elseif (MSVC) +- set ( OSG_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/OpenSceneGraph_v10.7z ) +- set ( OSI_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/osi_v10.7z ) +- set ( SUMO_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/sumo_v10.7z ) +- set ( GTEST_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD766065121/libs/googletest_v10.7z ) +- elseif (MINGW) +- message("MinGW, enforcing slimmed esmini") +- else () +- message ("Unsupported configuration") +- endif () +-else () +- Message("Unknown storage type: " ${FILE_STORAGE}) +-endif() +- +-if ( ${MODEL_STORAGE} STREQUAL "dropbox" ) +- set ( MODELS_PACKAGE_URL https://dl.dropboxusercontent.com/s/5gk8bvgzqiaaoco/models.7z?dl=0 ) +-elseif ( ${MODEL_STORAGE} STREQUAL "google" ) +- set ( MODELS_PACKAGE_URL https://drive.google.com/u/1/uc?id=1c3cqRzwY41gWXbg0rmugQkL5I_5L6DH_&export=download ) +-elseif ( ${MODEL_STORAGE} STREQUAL "esmini" ) +- set ( MODELS_PACKAGE_URL https://esmini.asuscomm.com/AICLOUD779364751/models/models.7z ) +-endif() +- + if (APPLE) + set ( EXT_DIR_NAME "mac" ) + set ( TIME_LIB "" ) +@@ -127,21 +47,8 @@ set ( OSI_DIR "${OSI_BASE_DIR}/${EXT_DIR_NAME}" ) + set ( SUMO_DIR "${SUMO_BASE_DIR}/${EXT_DIR_NAME}" ) + set ( GTEST_DIR "${GTEST_BASE_DIR}/${EXT_DIR_NAME}" ) + +-set ( OSG_INCLUDE_DIR +- "${OSG_DIR}/build/include" +- "${OSG_DIR}/include" +-) +-set ( OSG_LIBRARIES_PATH +- "${OSG_DIR}/lib" +- "${OSG_DIR}/lib/osgPlugins-3.6.5" +-) +- + set ( OSI_INCLUDE_DIR "${OSI_DIR}/include" ) +-if (DYN_PROTOBUF) +- set ( OSI_LIBRARIES_PATH "${OSI_DIR}/lib-dyn" ) +-else () +- set ( OSI_LIBRARIES_PATH "${OSI_DIR}/lib" ) +-endif (DYN_PROTOBUF) ++set ( OSI_LIBRARIES_PATH "${OSI_DIR}/lib" ) + + set ( SUMO_INCLUDE_DIR "${SUMO_DIR}/include" ) + set ( SUMO_LIBRARIES_PATH "${SUMO_DIR}/lib" ) +@@ -153,74 +60,6 @@ link_directories(${OSG_LIBRARIES_PATH} ${OSI_LIBRARIES_PATH} ${SUMO_LIBRARIES_PA + + if(APPLE) + SET(CMAKE_CXX_FLAGS "${CXX_STD_FLAG} -std=c++14 -pthread -fPIC -flto -DGL_SILENCE_DEPRECATION -Wl,-dead_strip") +- +- set ( OSG_LIBRARIES +- osg +- osgViewer +- osgDB +- osgdb_serializers_osgsim +- osgdb_serializers_osg +- osgGA +- osgText +- osgSim +- osgdb_osg +- osgdb_jpeg +- osgUtil +- osgAnimation +- osg +- OpenThreads +- jpeg +- "-framework OpenGL" +- "-framework Cocoa" +- dl +- z +- ) +- +- if (DYN_PROTOBUF) +- set ( OSI_LIBRARIES +- open_simulation_interface +- protobuf +- ) +- else () +- set ( OSI_LIBRARIES +- open_simulation_interface_pic +- protobuf +- ) +- endif (DYN_PROTOBUF) +- +- +- set ( SUMO_LIBRARIES +- optimized libsumostatic debug libsumostaticd +- optimized netload debug netloadd +- optimized traciserver debug traciserverd +- optimized libsumostatic debug libsumostaticd +- optimized utils_vehicle debug utils_vehicled +- optimized utils_distribution debug utils_distributiond +- optimized utils_shapes debug utils_shapesd +- optimized utils_options debug utils_optionsd +- optimized utils_xml debug utils_xmld +- optimized utils_geom debug utils_geomd +- optimized utils_common debug utils_commond +- optimized utils_iodevices debug utils_iodevicesd +- optimized utils_traction_wire debug utils_traction_wired +- optimized utils_emissions debug utils_emissionsd +- optimized microsim_engine debug microsim_engined +- optimized microsim_lcmodels debug microsim_lcmodelsd +- optimized microsim_devices debug microsim_devicesd +- optimized microsim_trigger debug microsim_triggerd +- optimized microsim_output debug microsim_outputd +- optimized microsim_transportables debug microsim_transportablesd +- optimized microsim_actions debug microsim_actionsd +- optimized microsim_traffic_lights debug microsim_traffic_lightsd +- optimized microsim debug microsimd +- optimized mesosim debug mesosimd +- optimized foreign_phemlight debug foreign_phemlightd +- optimized foreign_tcpip debug foreign_tcpipd +- optimized microsim_cfmodels debug microsim_cfmodelsd +- optimized zlibstatic debug zlibstaticd +- optimized xerces-c_3 debug xerces-c_3D +- "-framework CoreServices" +- ) + + elseif(LINUX) + +@@ -251,82 +90,8 @@ elseif(LINUX) + SET(CMAKE_CXX_FLAGS "${CXX_STD_FLAG} -pthread -fPIC -Wl,-strip-all") + endif() + +- set ( OSG_LIBRARIES +- optimized osg debug osgd +- optimized osgViewer debug osgViewerd +- optimized osgDB debug osgDBd +- optimized osgdb_serializers_osgsim debug osgdb_serializers_osgsimd +- optimized osgdb_serializers_osg debug osgdb_serializers_osgd +- optimized osgGA debug osgGAd +- optimized osgText debug osgTextd +- optimized osgSim debug osgSimd +- optimized osgdb_osg debug osgdb_osgd +- optimized osgdb_jpeg debug osgdb_jpegd +- optimized osgUtil debug osgUtild +- optimized osgAnimation debug osgAnimationd +- optimized osg debug osgd +- optimized OpenThreads debug OpenThreadsd +- optimized jpeg debug jpegd +- +- GL +- X11 +- Xrandr +- dl +- z +- Xinerama +- fontconfig +- ) +- +- if (DYN_PROTOBUF) +- set ( OSI_LIBRARIES +- optimized open_simulation_interface debug open_simulation_interfaced +- optimized protobuf debug protobufd +- ) +- else () +- set ( OSI_LIBRARIES +- optimized open_simulation_interface_pic debug open_simulation_interface_picd +- optimized protobuf debug protobufd +- ) +- endif (DYN_PROTOBUF) +- +- set ( SUMO_LIBRARIES +- optimized libsumostatic debug libsumostaticd +- optimized netload debug netloadd +- optimized traciserver debug traciserverd +- optimized libsumostatic debug libsumostaticd +- optimized utils_vehicle debug utils_vehicled +- optimized utils_distribution debug utils_distributiond +- optimized utils_shapes debug utils_shapesd +- optimized utils_options debug utils_optionsd +- optimized utils_xml debug utils_xmld +- optimized utils_geom debug utils_geomd +- optimized utils_common debug utils_commond +- optimized utils_iodevices debug utils_iodevicesd +- optimized utils_traction_wire debug utils_traction_wired +- optimized utils_emissions debug utils_emissionsd +- optimized microsim_engine debug microsim_engined +- optimized microsim_lcmodels debug microsim_lcmodelsd +- optimized microsim_devices debug microsim_devicesd +- optimized microsim_trigger debug microsim_triggerd +- optimized microsim_output debug microsim_outputd +- optimized microsim_transportables debug microsim_transportablesd +- optimized microsim_actions debug microsim_actionsd +- optimized microsim_traffic_lights debug microsim_traffic_lightsd +- optimized microsim debug microsimd +- optimized mesosim debug mesosimd +- optimized foreign_phemlight debug foreign_phemlightd +- optimized foreign_tcpip debug foreign_tcpipd +- optimized microsim_cfmodels debug microsim_cfmodelsd +- optimized zlibstatic debug zlibstaticd +- optimized xerces-c_3 debug xerces-c_3D +- ) +- +- set (GTEST_LIBRARIES +- optimized gmock debug gmockd +- optimized gmock_main debug gmock_maind +- optimized gtest debug gtestd +- optimized gtest_main debug gtest_maind +- ) ++ set ( OSI_LIBRARIES open_simulation_interface::open_simulation_interface ) ++ set ( SUMO_LIBRARIES sumocpp tracicpp ) + + elseif(MSVC) + +@@ -510,61 +275,6 @@ FOREACH(subdir ${SUBDIRS}) + endif () + ENDFOREACH() + +- +-# +-# Download library and content binary packets +-# +- +-function (download_and_extract url target_folder target_filename) +- message (STATUS "downloading ${target_filename} ...") +- file (DOWNLOAD ${url} ${target_folder}/${target_filename} STATUS DOWNLOAD_STATUS) +- +- if(DOWNLOAD_STATUS AND NOT DOWNLOAD_STATUS EQUAL 0) +- message(FATAL_ERROR "FAILED to download ${target_filename} (Status: ${DOWNLOAD_STATUS})") +- endif() +- +- execute_process (COMMAND sleep 1) # allow for file to be completely flushed +- +- message (STATUS "extracting ${target_filename} ... ") +- execute_process (COMMAND ${CMAKE_COMMAND} -E tar xfz ${target_filename} WORKING_DIRECTORY ${target_folder} RESULT_VARIABLE STATUS) +- +- if(STATUS AND NOT STATUS EQUAL 0) +- message(FATAL_ERROR "FAILED to unpack ${target_filename}") +- endif() +- +- file (REMOVE ${target_folder}/${target_filename}) +-endfunction (download_and_extract) +- +-# download OpenSceneGraph +-set ( OSG_PACKAGE_FILENAME "osg.7z" ) +-if (DEFINED OSG_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${OSG_DIR} )) +- download_and_extract( ${OSG_PACKAGE_URL} ${OSG_BASE_DIR} ${OSG_PACKAGE_FILENAME} ) +-endif() +- +-# download OSI +-set ( OSI_PACKAGE_FILENAME "osi.7z" ) +-if (DEFINED OSI_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${OSI_DIR} )) +- download_and_extract( ${OSI_PACKAGE_URL} ${OSI_BASE_DIR} ${OSI_PACKAGE_FILENAME} ) +-endif() +- +-# download SUMO +-set ( SUMO_PACKAGE_FILENAME "sumo.7z" ) +-if (DEFINED SUMO_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${SUMO_DIR} )) +- download_and_extract( ${SUMO_PACKAGE_URL} ${SUMO_BASE_DIR} ${SUMO_PACKAGE_FILENAME} ) +-endif() +- +-# download googletest +-if(NOT (APPLE OR MINGW)) # not available for Mac yet +- set ( GTEST_PACKAGE_FILENAME "googletest.7z" ) +- if (DEFINED GTEST_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${GTEST_DIR} )) +- download_and_extract( ${GTEST_PACKAGE_URL} ${GTEST_BASE_DIR} ${GTEST_PACKAGE_FILENAME} ) +- endif() +-endif() +- +-if (DEFINED MODELS_DIR AND (FORCE_DOWNLOAD_BINARIES OR NOT EXISTS ${MODELS_DIR} )) +- download_and_extract(${MODELS_PACKAGE_URL} ${MODELS_BASE_DIR} ${MODELS_PACKAGE_FILENAME}) +-endif() +- + add_subdirectory(Applications/odrplot) + add_subdirectory(Applications/replayer) + +diff --git a/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp b/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp +index 4c701d94..cb5de5bb 100644 +--- a/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp ++++ b/EnvironmentSimulator/Modules/Controllers/ControllerSumo.cpp +@@ -16,7 +16,6 @@ + #include "ScenarioGateway.hpp" + #include "pugixml.hpp" + +-#include + #include + #include + #include +diff --git a/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt b/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt +index e4fad5f1..32d7a79c 100644 +--- a/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt ++++ b/EnvironmentSimulator/Modules/RoadManager/CMakeLists.txt +@@ -2,7 +2,7 @@ + include_directories ( + ${PUGIXML_INCLUDE_DIR} + ${COMMON_MINI_INCLUDE_DIR} +- ${ROADMANAGER_INCLUDE_DIR} ++ ${ROADMANAGER_INCLUDE_DIR} + ) + + set ( SOURCES +@@ -11,8 +11,6 @@ set ( SOURCES + LaneIndependentRouter.cpp + ) + +-set ( SRC_ADDITIONAL ../../../externals/pugixml/pugixml.cpp) +- + SOURCE_GROUP("External Libraries" FILES ${SRC_ADDITIONAL}) + + set ( INCLUDES +@@ -25,6 +23,6 @@ if(MSVC) + add_definitions("/wd4482") + endif() + +-add_library ( RoadManager STATIC ${SOURCES} ${SRC_ADDITIONAL} ${INCLUDES} ) ++add_library ( RoadManager STATIC ${SOURCES} ${INCLUDES} ) + +-target_link_libraries ( RoadManager CommonMini project_options) +\ No newline at end of file ++target_link_libraries ( RoadManager CommonMini pugixml::pugixml project_options) +diff --git a/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt b/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt +index aec86ad6..86da77c1 100644 +--- a/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt ++++ b/EnvironmentSimulator/Modules/ScenarioEngine/CMakeLists.txt +@@ -5,7 +5,7 @@ include_directories ( + ${ROADMANAGER_INCLUDE_DIR} + ${COMMON_MINI_INCLUDE_DIR} + ${CONTROLLERS_INCLUDE_DIR} +- ${REPLAY_INCLUDE_DIR} ++ ${REPLAY_INCLUDE_DIR} + ${RDB_INCLUDE_DIR} + ${OSI_INCLUDE_DIR} + ${SUMO_INCLUDE_DIR} +@@ -20,20 +20,15 @@ if (NOT USE_OSI) + list(REMOVE_ITEM SRC_SOURCEFILES "${CMAKE_CURRENT_LIST_DIR}/SourceFiles/OSIReporter.cpp") + endif (NOT USE_OSI) + +-set ( SRC_ADDITIONAL ../../../externals/pugixml/pugixml.cpp ) +- + SOURCE_GROUP(OSCTypeDefs FILES ${SRC_OSCTYPEDEFS}) + SOURCE_GROUP("Source Files" FILES ${SRC_SOURCEFILES}) + SOURCE_GROUP("External Libraries" FILES ${SRC_ADDITIONAL}) + +-add_library ( ScenarioEngine STATIC +- ${SRC_OSCTYPEDEFS} +- ${SRC_SOURCEFILES} +- ${SRC_ADDITIONAL} ++add_library ( ScenarioEngine STATIC ++ ${SRC_OSCTYPEDEFS} ++ ${SRC_SOURCEFILES} + ) + + add_definitions(-D_CRT_SECURE_NO_WARNINGS) + +-target_link_libraries(ScenarioEngine PRIVATE project_options) +- +- ++target_link_libraries(ScenarioEngine PRIVATE pugixml::pugixml project_options) +-- +2.38.1 + diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index 4fdf99d9d4..6179d7a1ea 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -47,6 +47,7 @@ (define-module (gnu packages simulation) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-science) @@ -289,6 +290,76 @@ (define-public python-open-simulation-interface (build-system python-build-system) (arguments '()))) +(define-public esmini + (package + (name "esmini") + (version "2.27.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/esmini/esmini") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "esmini-use-pkgconfig.patch" + "esmini-no-clutter-log.patch")) + (modules '((guix build utils) (ice-9 ftw))) + (snippet + #~(with-directory-excursion "externals" + (for-each + (lambda (dir) (unless (member dir '("." ".." "expr")) + (delete-file-recursively dir))) + (scandir ".")))) + (sha256 + (base32 + "07ccydz7kxy5jc52f8fmxg4nkr1spshfnpzcv0wgd5lqz9ghjahz")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags #~(list "-DDYN_PROTOBUF=TRUE") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-cmake + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("\\$\\{CMAKE_HOME_DIRECTORY\\}/bin") + (string-append (assoc-ref outputs "out") "/bin"))) + (substitute* "EnvironmentSimulator/CMakeLists.txt" + (("\\$\\{OSI_DIR\\}/(include|lib)(-dyn)?" all what) + (search-input-directory + inputs + (string-append what "/osi" + #$(version-major + (package-version + (this-package-input + "open-simulation-interface")))))) + (("\\$\\{SUMO_BASE_DIR\\}/\\$\\{EXT_DIR_NAME\\}") + #$(this-package-input "sumo"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (with-directory-excursion "EnvironmentSimulator/Unittest/" + (for-each invoke (find-files "_test$"))))) + (add-after 'install 'move-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/lib")) + (with-directory-excursion (string-append out "/bin") + (for-each + (lambda (f) + (rename-file f (string-append out "/lib/" + (basename f)))) + (find-files "." "\\.so$"))))))))) + (inputs (list mesa + openscenegraph `(,openscenegraph "pluginlib") + open-simulation-interface + protobuf pugixml sumo)) + (native-inputs (list googletest pkg-config)) + (home-page "https://github.com/esmini/esmini") + (synopsis "Basic OpenSCENARIO player") + (description "@command{esmini} is a tool to play OpenSCENARIO files. +It is provided as both a standalone application and a shared library and has +some support for generating and analysing traffic scenarios..") + (license license:mpl2.0))) + (define-public python-fenics-dijitso (package (name "python-fenics-dijitso")