unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#49137] [PATCH] gnu: extempore: Update to 0.8.9.
@ 2021-06-20 15:09 Giacomo Leidi
  2021-06-29  9:40 ` Ludovic Courtès
  2021-07-21 21:04 ` bug#49137: " Ricardo Wurmus
  0 siblings, 2 replies; 4+ messages in thread
From: Giacomo Leidi @ 2021-06-20 15:09 UTC (permalink / raw)
  To: 49137; +Cc: Giacomo Leidi

* gnu/packages/music.scm (extempore): Update to 0.8.6.
[snippets]: Portaudio is no more in-tree.
[configure-flags]: We now load external libraries through patched
CMakeLists.txt.
[phases]: Symlink assets.
* gnu/packages/patches/extempore-unbundle-external-dependencies.patch:
Update accordingly.
---
 gnu/packages/music.scm                        |  30 +-
 ...mpore-unbundle-external-dependencies.patch | 316 +++++++++++++-----
 2 files changed, 251 insertions(+), 95 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index c9b949d0c3..b739fa43f4 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -847,7 +847,7 @@ MusePack, Monkey's Audio, and WavPack files.")
 (define-public extempore
   (package
     (name "extempore")
-    (version "0.8.6")
+    (version "0.8.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -855,7 +855,7 @@ MusePack, Monkey's Audio, and WavPack files.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "182jy23qv115dipny7kglwbn21z55dp253w1ykm0kh8n6vkgs7gp"))
+                "16i12zl3g1zpx6lhg5pg821xirdf9rxx5m11b68inf83wn6hknhb"))
               (file-name (git-file-name name version))
               (patches (search-patches
                         "extempore-unbundle-external-dependencies.patch"))
@@ -864,16 +864,12 @@ MusePack, Monkey's Audio, and WavPack files.")
                '(begin
                   ;; Remove bundled sources.
                   (map delete-file-recursively
-                       '("src/portaudio"
-                         "src/pcre"))
+                       '("src/pcre"))
                   #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DJACK=ON"
                                "-DPACKAGE=ON"
-                               "-DEXTERNAL_SHLIBS_AUDIO=OFF"
-                               "-DEXTERNAL_SHLIBS_GRAPHICS=OFF"
-                               "-DCMAKE_BUILD_TYPE=Release"
                                (string-append "-DEXT_SHARE_DIR="
                                               (assoc-ref %outputs "out")
                                               "/share"))
@@ -958,7 +954,12 @@ MusePack, Monkey's Audio, and WavPack files.")
                (("COMMAND extempore" prefix)
                 (string-append prefix " --sharedir " (getcwd)
                                " --mcpu=generic --attr=none")))
-             #t)))))
+             #t))
+         (add-after 'unpack 'symlink-assets
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((assets (assoc-ref inputs "extempore-assets")))
+               (symlink assets "assets")
+               #t))))))
     (inputs
      `(("llvm"
         ,(package
@@ -972,6 +973,19 @@ MusePack, Monkey's Audio, and WavPack files.")
               (sha256
                (base32
                 "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))))
+       ("extempore-assets"
+        ,(let ((commit "0c9f32c18169b3fbc24bc1ad66283125b54a0c85")
+               (revision "0")
+               (version "0.0.0"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/extemporelang/extempore-assets")
+                   (commit commit)))
+             (file-name (git-file-name "extempore-assets"
+                                       (git-version version revision commit)))
+             (sha256
+              (base32 "1pxmcbngd9qx8m71d5rfsmf4h31jnsnd3wjh8vb0rwskif22xz8l")))))
        ("libffi" ,libffi)
        ("jack" ,jack-1)
        ("libsndfile" ,libsndfile)
diff --git a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch
index e9484f7994..e72f995f0b 100644
--- a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch
+++ b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch
@@ -1,19 +1,27 @@
-Remove build machinery for bundled dependencies.
+From b48ef9af13a154939acc245c32d72358001d00f1 Mon Sep 17 00:00:00 2001
+From: Giacomo Leidi <goodoldpaul@autistici.org>
+Date: Sun, 20 Jun 2021 12:53:27 +0200
+Subject: [PATCH] Remove build machinery for bundled dependencies.
+
+---
+ CMakeLists.txt | 192 +------------------------------------------------
+ 1 file changed, 1 insertion(+), 191 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 89e6125e..c5e90750 100644
+index 17d13d7c..2a7206ed 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -36,7 +36,7 @@ endif()
- if(PACKAGE)
-   # this needs to be set before project() is called
-   set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12)
--  set(ASSETS ON) # necessary for packaging
-+  set(ASSETS OFF) # necessary for packaging
-   message(STATUS "Building Extempore for binary distribution (assets directory will be downloaded)")
- endif()
+@@ -1,9 +1,6 @@
+ cmake_minimum_required(VERSION 3.1) # we use target_sources()
+ project(Extempore VERSION 0.8.9)
  
-@@ -134,71 +134,6 @@ else()
+-# for backwards compatibility with CMake older than 3.19
+-cmake_policy(SET CMP0114 OLD)
+-
+ option(ASSETS "download multimedia assets (approx 500MB)" OFF)
+ option(BUILD_TESTS "build test targets (including examples)" ON)
+ option(PACKAGE "set up install targets for packaging" OFF)
+@@ -142,55 +139,6 @@ else()
    message(FATAL_ERROR "Sorry, Extempore isn't supported on this platform - macOS, Linux & Windows only.")
  endif()
  
@@ -51,90 +59,224 @@ index 89e6125e..c5e90750 100644
 -# portaudio #
 -#############
 -
--add_library(portaudio STATIC
--  src/portaudio/src/common/pa_allocation.c
--  src/portaudio/src/common/pa_allocation.h
--  src/portaudio/src/common/pa_converters.c
--  src/portaudio/src/common/pa_converters.h
--  src/portaudio/src/common/pa_cpuload.c
--  src/portaudio/src/common/pa_cpuload.h
--  src/portaudio/src/common/pa_debugprint.c
--  src/portaudio/src/common/pa_debugprint.h
--  src/portaudio/src/common/pa_dither.c
--  src/portaudio/src/common/pa_dither.h
--  src/portaudio/src/common/pa_endianness.h
--  src/portaudio/src/common/pa_front.c
--  src/portaudio/src/common/pa_hostapi.h
--  src/portaudio/src/common/pa_memorybarrier.h
--  src/portaudio/src/common/pa_process.c
--  src/portaudio/src/common/pa_process.h
--  src/portaudio/src/common/pa_ringbuffer.c
--  src/portaudio/src/common/pa_ringbuffer.h
--  src/portaudio/src/common/pa_stream.c
--  src/portaudio/src/common/pa_stream.h
--  src/portaudio/src/common/pa_trace.c
--  src/portaudio/src/common/pa_trace.h
--  src/portaudio/src/common/pa_types.h
--  src/portaudio/src/common/pa_util.h
--  )
+-include(ExternalProject)
 -
--target_include_directories(portaudio
--  PRIVATE src/portaudio/include
--  PRIVATE src/portaudio/src/common)
+-ExternalProject_Add(portaudio_static
+-  PREFIX portaudio
+-  URL https://github.com/PortAudio/portaudio/archive/3f7bee79a65327d2e0965e8a74299723ed6f072d.zip
+-  URL_MD5 182b76e05f6ef21d9f5716da7489905d
+-  CMAKE_ARGS
+-  -DPA_BUILD_STATIC=ON
+-  -DPA_BUILD_SHARED=OFF
+-  -DPA_LIBNAME_ADD_SUFFIX=OFF
+-  -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-  -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-  -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-  -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/portaudio)
 -
- # platform-specific
- 
- if(APPLE)
-@@ -224,25 +159,8 @@ if(APPLE)
+ ##############
+ # LLVM 3.8.0 #
+ ##############
+@@ -323,11 +271,6 @@ if(UNIX)
+   set_source_files_properties(src/Scheme.cpp PROPERTIES COMPILE_FLAGS -Wno-switch)
+ endif()
  
- elseif(UNIX AND NOT APPLE)
-   # use ALSA on Linux
--  target_sources(portaudio
--    PRIVATE src/portaudio/src/hostapi/alsa/pa_linux_alsa.c
--    PRIVATE src/portaudio/src/os/unix/pa_unix_hostapis.c
--    PRIVATE src/portaudio/src/os/unix/pa_unix_util.c
--    )
--  target_include_directories(portaudio
--    PRIVATE src/portaudio/src/os/unix)
--  target_compile_definitions(portaudio
--    PRIVATE -DPA_USE_ALSA)
--  target_link_libraries(portaudio
--    PRIVATE asound)
+-# static extempore build dependencies
+-
+-add_dependencies(extempore pcre)
+-add_dependencies(extempore portaudio_static)
+-
+ if(BUILD_LLVM)
+   if(WIN32)
+     add_dependencies(extempore LLVM-install)
+@@ -342,12 +285,9 @@ endif()
  
-   if(JACK)
--    target_sources(portaudio
--      PRIVATE src/portaudio/src/hostapi/jack/pa_jack.c)
--    target_compile_definitions(portaudio
--      PRIVATE -DPA_USE_JACK)
--    target_link_libraries(portaudio
--      PRIVATE jack)
-   endif()
+ target_include_directories(extempore
+   PRIVATE
+-  src/pcre
+-  ${CMAKE_BINARY_DIR}/portaudio/include # installed by ExternalProject
+   ${EXT_LLVM_DIR}/include)
  
- elseif(WIN32)
-@@ -292,8 +210,6 @@ if(ASIO)
+-target_link_directories(extempore PRIVATE ${CMAKE_BINARY_DIR}/portaudio/lib)
+-target_link_libraries(extempore PRIVATE pcre portaudio${CMAKE_STATIC_LIBRARY_SUFFIX} ${LLVM_LIBRARIES})
++target_link_libraries(extempore PRIVATE pcre portaudio ${LLVM_LIBRARIES})
+ if(UNIX AND NOT APPLE)
+   target_link_libraries(extempore PRIVATE asound)
  endif()
+@@ -425,7 +365,6 @@ elseif(APPLE) # macOS
+     PRIVATE "-framework AudioToolbox")
  
- if(PACKAGE)
--  target_compile_options(portaudio
--    PRIVATE -mtune=generic)
- endif()
+ elseif(UNIX AND NOT APPLE) # Linux
+-  set_property(TARGET pcre PROPERTY POSITION_INDEPENDENT_CODE ON)
+   set_property(TARGET extempore PROPERTY POSITION_INDEPENDENT_CODE ON)
+   # target_link_libraries(extempore PRIVATE --export-dynamic)
+   target_link_libraries(extempore PRIVATE dl)
+@@ -529,7 +468,6 @@ else(WIN32)
+       DEPENDS ${filename} extempore)
+     set_target_properties(${targetname} PROPERTIES FOLDER AOT)
+     if(NOT ${group} STREQUAL "core")
+-      add_dependencies(${targetname} external_shlibs_${group})
+       add_dependencies(aot_external_${group} ${targetname})
+     endif()
+     foreach(dep ${ARGN})
+@@ -568,59 +506,6 @@ add_custom_target(clean_aot
+ if(UNIX)
+   if(EXTERNAL_SHLIBS_AUDIO)
  
- ##############
-@@ -411,8 +327,6 @@ endif()
+-    # first, download & build the shared libraries themselves (these are all external to Extempore)
+-
+-    ExternalProject_Add(portmidi
+-      PREFIX portmidi
+-      URL https://github.com/extemporelang/portmidi/archive/8602f548f71daf5ef638b2f7d224753400cb2158.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(portmidi PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(rtmidi
+-      PREFIX rtmidi
+-      URL https://github.com/thestk/rtmidi/archive/84d130bf22d878ff1b0e224346e2e0f9e3ba8099.zip
+-      URL_MD5 d932b9fef01b859a1b8b86a3c8dc6621
+-      CMAKE_ARGS
+-      -DRTMIDI_BUILD_TESTING=OFF
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(rtmidi PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(kiss_fft
+-      PREFIX kiss_fft
+-      URL https://github.com/extemporelang/kiss_fft/archive/1.3.0.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(kiss_fft PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    # build with as few deps as we can get away with
+-
+-    ExternalProject_Add(sndfile
+-    PREFIX libsndfile
+-    URL https://github.com/erikd/libsndfile/archive/ae64caf9b5946d365971c550875000342e763de6.zip
+-    CMAKE_ARGS
+-    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-    -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-    -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-    -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR}
+-    -DBUILD_SHARED_LIBS=ON
+-    -DBUILD_PROGRAMS=OFF
+-    -DBUILD_EXAMPLES=OFF
+-	-DENABLE_EXTERNAL_LIBS=OFF
+-    -DBUILD_TESTING=OFF
+-    -DENABLE_CPACK=OFF
+-    -DENABLE_PACKAGE_CONFIG=OFF)
+-    set_target_properties(sndfile PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     add_custom_target(aot_external_audio ALL)
+     set_target_properties(aot_external_audio PROPERTIES FOLDER AOT)
+     aotcompile_lib(libs/external/fft.xtm audio base math)
+@@ -629,76 +514,13 @@ if(UNIX)
+     aotcompile_lib(libs/external/instruments_ext.xtm audio base sndfile instruments)
+     aotcompile_lib(libs/external/portmidi.xtm audio base)
+ 
+-    add_custom_target(external_shlibs_audio
+-      COMMENT "moving shared libs into ${EXT_PLATFORM_SHLIBS_DIR}"
+-      DEPENDS LLVM sndfile kiss_fft portmidi rtmidi
+-      COMMAND ${CMAKE_COMMAND} -E make_directory ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libkiss_fft${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libportmidi${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy librtmidi${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libsndfile${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      WORKING_DIRECTORY ${EXT_DEPS_INSTALL_DIR}/lib)
+-    set_target_properties(external_shlibs_audio PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     add_dependencies(aot_external_audio extempore)
+-    add_dependencies(aot_external_audio external_shlibs_audio)
  
- # dependencies
+   endif(EXTERNAL_SHLIBS_AUDIO)
  
--add_dependencies(extempore pcre portaudio)
+   if(EXTERNAL_SHLIBS_GRAPHICS)
+ 
+-    ExternalProject_Add(nanovg
+-      PREFIX nanovg
+-      URL https://github.com/extemporelang/nanovg/archive/3c60175fcc2e5fe305b04355cdce35d499c80310.tar.gz
+-      CMAKE_ARGS
+-      -DEXTEMPORE_LIB_PATH=${CMAKE_SOURCE_DIR}/libs/platform-shlibs/extempore.lib
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(nanovg PROPERTIES FOLDER EXTERNAL_SHLIBS)
 -
- if(BUILD_LLVM)
-   if(WIN32)
-     add_dependencies(extempore LLVM-install)
-@@ -553,7 +467,7 @@ else()
-   install(TARGETS extempore
-     RUNTIME
-     DESTINATION ".")
--  install(DIRECTORY assets runtime libs examples tests
-+  install(DIRECTORY runtime libs examples
-     DESTINATION "."
-     PATTERN ".DS_Store" EXCLUDE)
- endif()
+-    add_dependencies(nanovg extempore)
+-
+-    ExternalProject_Add(stb_image
+-      PREFIX stb_image
+-      URL https://github.com/extemporelang/stb/archive/152a250a702bf28951bb0220d63bc0c99830c498.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(nanovg PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(glfw3
+-      PREFIX glfw3
+-      URL https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DBUILD_SHARED_LIBS=ON
+-      -DGLFW_BUILD_EXAMPLES=OFF
+-      -DGLFW_BUILD_TESTS=OFF
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(glfw3 PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(assimp
+-      PREFIX assimp
+-      URL https://github.com/assimp/assimp/archive/v3.2.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_DEBUG_POSTFIX=
+-      -DASSIMP_BUILD_ASSIMP_TOOLS=OFF
+-      -DASSIMP_BUILD_SAMPLES=OFF
+-      -DASSIMP_BUILD_TESTS=OFF
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(assimp PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     add_custom_target(aot_external_graphics ALL)
+-    set_target_properties(assimp PROPERTIES FOLDER AOT)
+ 
+     aotcompile_lib(libs/external/stb_image.xtm graphics base)
+     aotcompile_lib(libs/external/glfw3.xtm graphics base)
+@@ -715,20 +537,8 @@ if(UNIX)
+     aotcompile_lib(libs/external/assimp.xtm graphics base stb_image graphics-pipeline)
+     aotcompile_lib(libs/external/gl/glcompat-${GL_BIND_METHOD}.xtm graphics base)
+ 
+-    add_custom_target(external_shlibs_graphics
+-      COMMENT "moving shared libs into ${EXT_PLATFORM_SHLIBS_DIR}"
+-      DEPENDS LLVM assimp glfw3 stb_image nanovg
+-      COMMAND ${CMAKE_COMMAND} -E make_directory ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libassimp${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libglfw${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libnanovg${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libstb_image${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      WORKING_DIRECTORY ${EXT_DEPS_INSTALL_DIR}/lib)
+-    set_target_properties(external_shlibs_graphics PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     # set up these libs for AOT compilation
+     add_dependencies(aot_external_graphics extempore)
+-    add_dependencies(aot_external_graphics external_shlibs_graphics)
+ 
+   endif(EXTERNAL_SHLIBS_GRAPHICS)
+ endif(UNIX)
+-- 
+2.32.0
+
-- 
2.32.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#49137] [PATCH] gnu: extempore: Update to 0.8.9.
  2021-06-20 15:09 [bug#49137] [PATCH] gnu: extempore: Update to 0.8.9 Giacomo Leidi
@ 2021-06-29  9:40 ` Ludovic Courtès
  2021-06-29 23:37   ` paul
  2021-07-21 21:04 ` bug#49137: " Ricardo Wurmus
  1 sibling, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2021-06-29  9:40 UTC (permalink / raw)
  To: Giacomo Leidi; +Cc: 49137

Hi Giacomo,

Giacomo Leidi <goodoldpaul@autistici.org> skribis:

> * gnu/packages/music.scm (extempore): Update to 0.8.6.
> [snippets]: Portaudio is no more in-tree.
> [configure-flags]: We now load external libraries through patched
> CMakeLists.txt.
> [phases]: Symlink assets.
> * gnu/packages/patches/extempore-unbundle-external-dependencies.patch:
> Update accordingly.

It seems that the patch, specifically the
‘extempore-unbundle-external-dependencies.patch’ bit, does not apply on
current master.

Could you take a look?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#49137] [PATCH] gnu: extempore: Update to 0.8.9.
  2021-06-29  9:40 ` Ludovic Courtès
@ 2021-06-29 23:37   ` paul
  0 siblings, 0 replies; 4+ messages in thread
From: paul @ 2021-06-29 23:37 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 49137


[-- Attachment #1.1: Type: text/plain, Size: 1517 bytes --]

Dear Ludovic,

On 6/29/21 11:40 AM, Ludovic Courtès wrote:
> It seems that the patch, specifically the
> ‘extempore-unbundle-external-dependencies.patch’ bit, does not apply on
> current master.

It works on my machine :D . Jokes apart, I rebased on master (without 
any conflicts) and this is the behavior I get on my local repo:

orang3@frastanato ~/code/guix$ git describe
v1.3.0-3510-g8269d82868
orang3@frastanato ~/code/guix$  git checkout extempore
Switched to branch 'extempore'
orang3@frastanato ~/code/guix$ git log master..extempore
commit 54fbc4c477f246e9c01c2c9ed231c903c5275428 (HEAD -> extempore)
Author: Giacomo Leidi
Date:   Sun Jun 20 16:57:46 2021 +0200

     gnu: extempore: Update to 0.8.9.

     * gnu/packages/music.scm (extempore): Update to 0.8.6.
     [snippets]: Portaudio is no more in-tree.
     [configure-flags]: We now load external libraries through patched
     CMakeLists.txt.
     [phases]: Symlink assets.
     * gnu/packages/patches/extempore-unbundle-external-dependencies.patch:
     Update accordingly.
orang3@frastanato ~/code/guix$ ./pre-inst-env guix build extempore
;;; note: source file /home/orang3/code/guix/gnu/packages/music.scm
;;;       newer than compiled /home/orang3/code/guix/gnu/packages/music.go
/gnu/store/i2bcxffd0i3jq5i5dmwkb1lchcvph6m0-extempore-0.8.9
orang3@frastanato ~/code/guix$

Is there something else that I'm not doing? In any case I'm attaching 
the rebased patch.

Thank you for your time,

Giacomo


[-- Attachment #1.2: Type: text/html, Size: 1891 bytes --]

[-- Attachment #2: 0001-gnu-extempore-Update-to-0.8.9.patch --]
[-- Type: text/x-patch, Size: 18303 bytes --]

From 54fbc4c477f246e9c01c2c9ed231c903c5275428 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Sun, 20 Jun 2021 16:57:46 +0200
Subject: [PATCH] gnu: extempore: Update to 0.8.9.

* gnu/packages/music.scm (extempore): Update to 0.8.6.
[snippets]: Portaudio is no more in-tree.
[configure-flags]: We now load external libraries through patched
CMakeLists.txt.
[phases]: Symlink assets.
* gnu/packages/patches/extempore-unbundle-external-dependencies.patch:
Update accordingly.
---
 gnu/packages/music.scm                        |  30 +-
 ...mpore-unbundle-external-dependencies.patch | 316 +++++++++++++-----
 2 files changed, 251 insertions(+), 95 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 454d66f759..a1e14eb53d 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -847,7 +847,7 @@ MusePack, Monkey's Audio, and WavPack files.")
 (define-public extempore
   (package
     (name "extempore")
-    (version "0.8.6")
+    (version "0.8.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -855,7 +855,7 @@ MusePack, Monkey's Audio, and WavPack files.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "182jy23qv115dipny7kglwbn21z55dp253w1ykm0kh8n6vkgs7gp"))
+                "16i12zl3g1zpx6lhg5pg821xirdf9rxx5m11b68inf83wn6hknhb"))
               (file-name (git-file-name name version))
               (patches (search-patches
                         "extempore-unbundle-external-dependencies.patch"))
@@ -864,16 +864,12 @@ MusePack, Monkey's Audio, and WavPack files.")
                '(begin
                   ;; Remove bundled sources.
                   (map delete-file-recursively
-                       '("src/portaudio"
-                         "src/pcre"))
+                       '("src/pcre"))
                   #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DJACK=ON"
                                "-DPACKAGE=ON"
-                               "-DEXTERNAL_SHLIBS_AUDIO=OFF"
-                               "-DEXTERNAL_SHLIBS_GRAPHICS=OFF"
-                               "-DCMAKE_BUILD_TYPE=Release"
                                (string-append "-DEXT_SHARE_DIR="
                                               (assoc-ref %outputs "out")
                                               "/share"))
@@ -958,7 +954,12 @@ MusePack, Monkey's Audio, and WavPack files.")
                (("COMMAND extempore" prefix)
                 (string-append prefix " --sharedir " (getcwd)
                                " --mcpu=generic --attr=none")))
-             #t)))))
+             #t))
+         (add-after 'unpack 'symlink-assets
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((assets (assoc-ref inputs "extempore-assets")))
+               (symlink assets "assets")
+               #t))))))
     (inputs
      `(("llvm"
         ,(package
@@ -972,6 +973,19 @@ MusePack, Monkey's Audio, and WavPack files.")
               (sha256
                (base32
                 "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))))
+       ("extempore-assets"
+        ,(let ((commit "0c9f32c18169b3fbc24bc1ad66283125b54a0c85")
+               (revision "0")
+               (version "0.0.0"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/extemporelang/extempore-assets")
+                   (commit commit)))
+             (file-name (git-file-name "extempore-assets"
+                                       (git-version version revision commit)))
+             (sha256
+              (base32 "1pxmcbngd9qx8m71d5rfsmf4h31jnsnd3wjh8vb0rwskif22xz8l")))))
        ("libffi" ,libffi)
        ("jack" ,jack-1)
        ("libsndfile" ,libsndfile)
diff --git a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch
index e9484f7994..e72f995f0b 100644
--- a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch
+++ b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch
@@ -1,19 +1,27 @@
-Remove build machinery for bundled dependencies.
+From b48ef9af13a154939acc245c32d72358001d00f1 Mon Sep 17 00:00:00 2001
+From: Giacomo Leidi <goodoldpaul@autistici.org>
+Date: Sun, 20 Jun 2021 12:53:27 +0200
+Subject: [PATCH] Remove build machinery for bundled dependencies.
+
+---
+ CMakeLists.txt | 192 +------------------------------------------------
+ 1 file changed, 1 insertion(+), 191 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 89e6125e..c5e90750 100644
+index 17d13d7c..2a7206ed 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -36,7 +36,7 @@ endif()
- if(PACKAGE)
-   # this needs to be set before project() is called
-   set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12)
--  set(ASSETS ON) # necessary for packaging
-+  set(ASSETS OFF) # necessary for packaging
-   message(STATUS "Building Extempore for binary distribution (assets directory will be downloaded)")
- endif()
+@@ -1,9 +1,6 @@
+ cmake_minimum_required(VERSION 3.1) # we use target_sources()
+ project(Extempore VERSION 0.8.9)
  
-@@ -134,71 +134,6 @@ else()
+-# for backwards compatibility with CMake older than 3.19
+-cmake_policy(SET CMP0114 OLD)
+-
+ option(ASSETS "download multimedia assets (approx 500MB)" OFF)
+ option(BUILD_TESTS "build test targets (including examples)" ON)
+ option(PACKAGE "set up install targets for packaging" OFF)
+@@ -142,55 +139,6 @@ else()
    message(FATAL_ERROR "Sorry, Extempore isn't supported on this platform - macOS, Linux & Windows only.")
  endif()
  
@@ -51,90 +59,224 @@ index 89e6125e..c5e90750 100644
 -# portaudio #
 -#############
 -
--add_library(portaudio STATIC
--  src/portaudio/src/common/pa_allocation.c
--  src/portaudio/src/common/pa_allocation.h
--  src/portaudio/src/common/pa_converters.c
--  src/portaudio/src/common/pa_converters.h
--  src/portaudio/src/common/pa_cpuload.c
--  src/portaudio/src/common/pa_cpuload.h
--  src/portaudio/src/common/pa_debugprint.c
--  src/portaudio/src/common/pa_debugprint.h
--  src/portaudio/src/common/pa_dither.c
--  src/portaudio/src/common/pa_dither.h
--  src/portaudio/src/common/pa_endianness.h
--  src/portaudio/src/common/pa_front.c
--  src/portaudio/src/common/pa_hostapi.h
--  src/portaudio/src/common/pa_memorybarrier.h
--  src/portaudio/src/common/pa_process.c
--  src/portaudio/src/common/pa_process.h
--  src/portaudio/src/common/pa_ringbuffer.c
--  src/portaudio/src/common/pa_ringbuffer.h
--  src/portaudio/src/common/pa_stream.c
--  src/portaudio/src/common/pa_stream.h
--  src/portaudio/src/common/pa_trace.c
--  src/portaudio/src/common/pa_trace.h
--  src/portaudio/src/common/pa_types.h
--  src/portaudio/src/common/pa_util.h
--  )
+-include(ExternalProject)
 -
--target_include_directories(portaudio
--  PRIVATE src/portaudio/include
--  PRIVATE src/portaudio/src/common)
+-ExternalProject_Add(portaudio_static
+-  PREFIX portaudio
+-  URL https://github.com/PortAudio/portaudio/archive/3f7bee79a65327d2e0965e8a74299723ed6f072d.zip
+-  URL_MD5 182b76e05f6ef21d9f5716da7489905d
+-  CMAKE_ARGS
+-  -DPA_BUILD_STATIC=ON
+-  -DPA_BUILD_SHARED=OFF
+-  -DPA_LIBNAME_ADD_SUFFIX=OFF
+-  -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-  -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-  -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-  -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/portaudio)
 -
- # platform-specific
- 
- if(APPLE)
-@@ -224,25 +159,8 @@ if(APPLE)
+ ##############
+ # LLVM 3.8.0 #
+ ##############
+@@ -323,11 +271,6 @@ if(UNIX)
+   set_source_files_properties(src/Scheme.cpp PROPERTIES COMPILE_FLAGS -Wno-switch)
+ endif()
  
- elseif(UNIX AND NOT APPLE)
-   # use ALSA on Linux
--  target_sources(portaudio
--    PRIVATE src/portaudio/src/hostapi/alsa/pa_linux_alsa.c
--    PRIVATE src/portaudio/src/os/unix/pa_unix_hostapis.c
--    PRIVATE src/portaudio/src/os/unix/pa_unix_util.c
--    )
--  target_include_directories(portaudio
--    PRIVATE src/portaudio/src/os/unix)
--  target_compile_definitions(portaudio
--    PRIVATE -DPA_USE_ALSA)
--  target_link_libraries(portaudio
--    PRIVATE asound)
+-# static extempore build dependencies
+-
+-add_dependencies(extempore pcre)
+-add_dependencies(extempore portaudio_static)
+-
+ if(BUILD_LLVM)
+   if(WIN32)
+     add_dependencies(extempore LLVM-install)
+@@ -342,12 +285,9 @@ endif()
  
-   if(JACK)
--    target_sources(portaudio
--      PRIVATE src/portaudio/src/hostapi/jack/pa_jack.c)
--    target_compile_definitions(portaudio
--      PRIVATE -DPA_USE_JACK)
--    target_link_libraries(portaudio
--      PRIVATE jack)
-   endif()
+ target_include_directories(extempore
+   PRIVATE
+-  src/pcre
+-  ${CMAKE_BINARY_DIR}/portaudio/include # installed by ExternalProject
+   ${EXT_LLVM_DIR}/include)
  
- elseif(WIN32)
-@@ -292,8 +210,6 @@ if(ASIO)
+-target_link_directories(extempore PRIVATE ${CMAKE_BINARY_DIR}/portaudio/lib)
+-target_link_libraries(extempore PRIVATE pcre portaudio${CMAKE_STATIC_LIBRARY_SUFFIX} ${LLVM_LIBRARIES})
++target_link_libraries(extempore PRIVATE pcre portaudio ${LLVM_LIBRARIES})
+ if(UNIX AND NOT APPLE)
+   target_link_libraries(extempore PRIVATE asound)
  endif()
+@@ -425,7 +365,6 @@ elseif(APPLE) # macOS
+     PRIVATE "-framework AudioToolbox")
  
- if(PACKAGE)
--  target_compile_options(portaudio
--    PRIVATE -mtune=generic)
- endif()
+ elseif(UNIX AND NOT APPLE) # Linux
+-  set_property(TARGET pcre PROPERTY POSITION_INDEPENDENT_CODE ON)
+   set_property(TARGET extempore PROPERTY POSITION_INDEPENDENT_CODE ON)
+   # target_link_libraries(extempore PRIVATE --export-dynamic)
+   target_link_libraries(extempore PRIVATE dl)
+@@ -529,7 +468,6 @@ else(WIN32)
+       DEPENDS ${filename} extempore)
+     set_target_properties(${targetname} PROPERTIES FOLDER AOT)
+     if(NOT ${group} STREQUAL "core")
+-      add_dependencies(${targetname} external_shlibs_${group})
+       add_dependencies(aot_external_${group} ${targetname})
+     endif()
+     foreach(dep ${ARGN})
+@@ -568,59 +506,6 @@ add_custom_target(clean_aot
+ if(UNIX)
+   if(EXTERNAL_SHLIBS_AUDIO)
  
- ##############
-@@ -411,8 +327,6 @@ endif()
+-    # first, download & build the shared libraries themselves (these are all external to Extempore)
+-
+-    ExternalProject_Add(portmidi
+-      PREFIX portmidi
+-      URL https://github.com/extemporelang/portmidi/archive/8602f548f71daf5ef638b2f7d224753400cb2158.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(portmidi PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(rtmidi
+-      PREFIX rtmidi
+-      URL https://github.com/thestk/rtmidi/archive/84d130bf22d878ff1b0e224346e2e0f9e3ba8099.zip
+-      URL_MD5 d932b9fef01b859a1b8b86a3c8dc6621
+-      CMAKE_ARGS
+-      -DRTMIDI_BUILD_TESTING=OFF
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(rtmidi PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(kiss_fft
+-      PREFIX kiss_fft
+-      URL https://github.com/extemporelang/kiss_fft/archive/1.3.0.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(kiss_fft PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    # build with as few deps as we can get away with
+-
+-    ExternalProject_Add(sndfile
+-    PREFIX libsndfile
+-    URL https://github.com/erikd/libsndfile/archive/ae64caf9b5946d365971c550875000342e763de6.zip
+-    CMAKE_ARGS
+-    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-    -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-    -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-    -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR}
+-    -DBUILD_SHARED_LIBS=ON
+-    -DBUILD_PROGRAMS=OFF
+-    -DBUILD_EXAMPLES=OFF
+-	-DENABLE_EXTERNAL_LIBS=OFF
+-    -DBUILD_TESTING=OFF
+-    -DENABLE_CPACK=OFF
+-    -DENABLE_PACKAGE_CONFIG=OFF)
+-    set_target_properties(sndfile PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     add_custom_target(aot_external_audio ALL)
+     set_target_properties(aot_external_audio PROPERTIES FOLDER AOT)
+     aotcompile_lib(libs/external/fft.xtm audio base math)
+@@ -629,76 +514,13 @@ if(UNIX)
+     aotcompile_lib(libs/external/instruments_ext.xtm audio base sndfile instruments)
+     aotcompile_lib(libs/external/portmidi.xtm audio base)
+ 
+-    add_custom_target(external_shlibs_audio
+-      COMMENT "moving shared libs into ${EXT_PLATFORM_SHLIBS_DIR}"
+-      DEPENDS LLVM sndfile kiss_fft portmidi rtmidi
+-      COMMAND ${CMAKE_COMMAND} -E make_directory ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libkiss_fft${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libportmidi${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy librtmidi${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libsndfile${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      WORKING_DIRECTORY ${EXT_DEPS_INSTALL_DIR}/lib)
+-    set_target_properties(external_shlibs_audio PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     add_dependencies(aot_external_audio extempore)
+-    add_dependencies(aot_external_audio external_shlibs_audio)
  
- # dependencies
+   endif(EXTERNAL_SHLIBS_AUDIO)
  
--add_dependencies(extempore pcre portaudio)
+   if(EXTERNAL_SHLIBS_GRAPHICS)
+ 
+-    ExternalProject_Add(nanovg
+-      PREFIX nanovg
+-      URL https://github.com/extemporelang/nanovg/archive/3c60175fcc2e5fe305b04355cdce35d499c80310.tar.gz
+-      CMAKE_ARGS
+-      -DEXTEMPORE_LIB_PATH=${CMAKE_SOURCE_DIR}/libs/platform-shlibs/extempore.lib
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(nanovg PROPERTIES FOLDER EXTERNAL_SHLIBS)
 -
- if(BUILD_LLVM)
-   if(WIN32)
-     add_dependencies(extempore LLVM-install)
-@@ -553,7 +467,7 @@ else()
-   install(TARGETS extempore
-     RUNTIME
-     DESTINATION ".")
--  install(DIRECTORY assets runtime libs examples tests
-+  install(DIRECTORY runtime libs examples
-     DESTINATION "."
-     PATTERN ".DS_Store" EXCLUDE)
- endif()
+-    add_dependencies(nanovg extempore)
+-
+-    ExternalProject_Add(stb_image
+-      PREFIX stb_image
+-      URL https://github.com/extemporelang/stb/archive/152a250a702bf28951bb0220d63bc0c99830c498.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(nanovg PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(glfw3
+-      PREFIX glfw3
+-      URL https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DBUILD_SHARED_LIBS=ON
+-      -DGLFW_BUILD_EXAMPLES=OFF
+-      -DGLFW_BUILD_TESTS=OFF
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(glfw3 PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+-    ExternalProject_Add(assimp
+-      PREFIX assimp
+-      URL https://github.com/assimp/assimp/archive/v3.2.zip
+-      CMAKE_ARGS
+-      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_C_FLAGS=${EXT_DEPS_C_FLAGS}
+-      -DCMAKE_CXX_FLAGS=${EXT_DEPS_CXX_FLAGS}
+-      -DCMAKE_DEBUG_POSTFIX=
+-      -DASSIMP_BUILD_ASSIMP_TOOLS=OFF
+-      -DASSIMP_BUILD_SAMPLES=OFF
+-      -DASSIMP_BUILD_TESTS=OFF
+-      -DCMAKE_INSTALL_PREFIX=${EXT_DEPS_INSTALL_DIR})
+-    set_target_properties(assimp PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     add_custom_target(aot_external_graphics ALL)
+-    set_target_properties(assimp PROPERTIES FOLDER AOT)
+ 
+     aotcompile_lib(libs/external/stb_image.xtm graphics base)
+     aotcompile_lib(libs/external/glfw3.xtm graphics base)
+@@ -715,20 +537,8 @@ if(UNIX)
+     aotcompile_lib(libs/external/assimp.xtm graphics base stb_image graphics-pipeline)
+     aotcompile_lib(libs/external/gl/glcompat-${GL_BIND_METHOD}.xtm graphics base)
+ 
+-    add_custom_target(external_shlibs_graphics
+-      COMMENT "moving shared libs into ${EXT_PLATFORM_SHLIBS_DIR}"
+-      DEPENDS LLVM assimp glfw3 stb_image nanovg
+-      COMMAND ${CMAKE_COMMAND} -E make_directory ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libassimp${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libglfw${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libnanovg${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      COMMAND ${CMAKE_COMMAND} -E copy libstb_image${CMAKE_SHARED_LIBRARY_SUFFIX} ${EXT_PLATFORM_SHLIBS_DIR}
+-      WORKING_DIRECTORY ${EXT_DEPS_INSTALL_DIR}/lib)
+-    set_target_properties(external_shlibs_graphics PROPERTIES FOLDER EXTERNAL_SHLIBS)
+-
+     # set up these libs for AOT compilation
+     add_dependencies(aot_external_graphics extempore)
+-    add_dependencies(aot_external_graphics external_shlibs_graphics)
+ 
+   endif(EXTERNAL_SHLIBS_GRAPHICS)
+ endif(UNIX)
+-- 
+2.32.0
+
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#49137: [PATCH] gnu: extempore: Update to 0.8.9.
  2021-06-20 15:09 [bug#49137] [PATCH] gnu: extempore: Update to 0.8.9 Giacomo Leidi
  2021-06-29  9:40 ` Ludovic Courtès
@ 2021-07-21 21:04 ` Ricardo Wurmus
  1 sibling, 0 replies; 4+ messages in thread
From: Ricardo Wurmus @ 2021-07-21 21:04 UTC (permalink / raw)
  To: 49137-done

Hi,

I applied Paul’s rebased patch and it did build extempore without 
errors.

I was a bit concerned about my CPU type appearing many times 
throughout the build, but the build is configured with a “generic” 
CPU.  Extempore prints my CPU attributes on startup, but this does 
not mean that these attributes are *expected* from the CPU at 
runtime:

--8<---------------cut here---------------start------------->8---
CPU            : broadwell
ATTRS          : 
-sse4a,-avx512bw,+cx16,-tbm,+xsave,-fma4,-avx512vl,+prfchw,+bmi2,+adx,-xsavec,+fsgsbase,+avx,-avx512cd,-avx512pf,+rtm,+popcnt,+fma,+bmi,+aes,+rdrnd,-xsaves,+sse4.1,+sse4.2,+avx2,-avx512er,+sse,+lzcnt,+pclmul,-avx512f,+f16c,+ssse3,+mmx,-pku,+cmov,-xop,+rdseed,+movbe,+hle,+xsaveopt,-sha,+sse2,+sse3,-avx512dq
--8<---------------cut here---------------end--------------->8---

So I went ahead and pushed the rebased patch.

Thank you all!

-- 
Ricardo




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-21 21:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-20 15:09 [bug#49137] [PATCH] gnu: extempore: Update to 0.8.9 Giacomo Leidi
2021-06-29  9:40 ` Ludovic Courtès
2021-06-29 23:37   ` paul
2021-07-21 21:04 ` bug#49137: " Ricardo Wurmus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).