From patchwork Tue Jun 29 23:37:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Giacomo Leidi X-Patchwork-Id: 30801 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 2EF1327BC81; Wed, 30 Jun 2021 00:38:29 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_ADSP_ALL, DKIM_SIGNED,HTML_MESSAGE,MAILING_LIST_MULTI,SPF_HELO_PASS, T_DKIM_INVALID,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2884927BC78 for ; Wed, 30 Jun 2021 00:38:28 +0100 (BST) Received: from localhost ([::1]:56578 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyNJC-00006e-RP for patchwork@mira.cbaines.net; Tue, 29 Jun 2021 19:38:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56632) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyNIo-00006W-IA for guix-patches@gnu.org; Tue, 29 Jun 2021 19:38:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:44400) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lyNIo-0006lh-A5 for guix-patches@gnu.org; Tue, 29 Jun 2021 19:38:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lyNIo-0008Bx-08 for guix-patches@gnu.org; Tue, 29 Jun 2021 19:38:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49137] [PATCH] gnu: extempore: Update to 0.8.9. Resent-From: paul Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 29 Jun 2021 23:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49137 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?utf-8?q?Court=C3=A8s?= Cc: 49137@debbugs.gnu.org Received: via spool by 49137-submit@debbugs.gnu.org id=B49137.162500983431379 (code B ref 49137); Tue, 29 Jun 2021 23:38:01 +0000 Received: (at 49137) by debbugs.gnu.org; 29 Jun 2021 23:37:14 +0000 Received: from localhost ([127.0.0.1]:55946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lyNI1-0008A0-3o for submit@debbugs.gnu.org; Tue, 29 Jun 2021 19:37:14 -0400 Received: from latitanza.investici.org ([82.94.249.234]:23521) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lyNHx-00089k-QN for 49137@debbugs.gnu.org; Tue, 29 Jun 2021 19:37:11 -0400 Received: from mx3.investici.org (unknown [127.0.0.1]) by latitanza.investici.org (Postfix) with ESMTP id 4GF1901V2nzGp5M; Tue, 29 Jun 2021 23:37:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=autistici.org; s=stigmate; t=1625009828; bh=vgrTjuq4Wrz8MtZ4QMjl7nAc9ikOEdsGVkbeOc32GF8=; h=To:Cc:References:From:Subject:Date:In-Reply-To:From; b=toi8geA4s9trU1le3tDN12VZ1ENviAZA+mvSRuMlcUACU4bC54w39AQzi7m9pcOfw /D5XMIgZbZye9c/X9/anU7HFXobIv39qeAWjx6oK0b1ao7lv8+YhbyqHz+E7TyHq4/ YIjNMn5k3WlrkNS6zwj09Wi6GuVzSwfuO8Lwtg28= Received: from [82.94.249.234] (mx3.investici.org [82.94.249.234]) (Authenticated sender: goodoldpaul@autistici.org) by localhost (Postfix) with ESMTPSA id 4GF19005yKzGp56; Tue, 29 Jun 2021 23:37:07 +0000 (UTC) References: <20210620150909.28105-1-goodoldpaul@autistici.org> <871r8luhyb.fsf@gnu.org> From: paul Message-ID: <9eceda87-23fa-fdaa-1994-706a4ac18a58@autistici.org> Date: Wed, 30 Jun 2021 01:37:07 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Icedove/78.11.0 MIME-Version: 1.0 In-Reply-To: <871r8luhyb.fsf@gnu.org> Content-Language: en-US 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" X-getmail-retrieved-from-mailbox: Patches 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 From 54fbc4c477f246e9c01c2c9ed231c903c5275428 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi 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 +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