On 2018/08/01 20:02, Kristaps Dzonsons wrote:
> > Here is a first draft doing just that (attached).
> > 
> >  * Make the PKGNAME lowercase as for almost all ports.
> >  * Conventional license marker.
> >  * Move MASTER_SITES up to the conventional place.
> >  * Move EXTRACT_SUFX down to the conventional place.
> >  * Add the second file to DISTFILES.
> >  * Move MODULES up to the conventional place.
> >  * Add post-extract and pre-configure targets.
> > 
> > Changes to patches:
> >  * CMakeLists.txt
> >     - do not include(HandleFindLibDiveComputer), searching for something
> >       when we already know where it is causes nothing but trouble
> >     - adjust include_directories()
> >     - adjust set_target_properties(subsurface_dc)
> >  * cmake/Modules/FindLibdivecomputer.cmake
> >     - delete patch, should now work as is with the in-tree libdivecomputer
> >  * libdivecomputer/src/serial_posix.c
> >     - move this here from the draft of the libdivecomputer-subsurface port
> > 
> > It builds and runs for me, but i'm in no position to test because the
> > Rhine river is 20 km away, very muddy, full of cargo ships, and none
> > of my computers is a waterproof dive computer.
> > 
> > This is *not* yet finished.  I still see many open questions,
> > but i figured i should send a first draft early to demonstrate
> > how to use DISTFILES with post-extract, and such that work is
> > not duplicated.
> > 
> > In particular, right now, it builds libdivecomputer during
> > pre-configure.  I suspect this can be split up to do the parts
> > that belong to the build, not to configure, in pre-build.
> > We just need to be careful that the main configure still finds
> > the information it needs.
> > 
> > If i do a bit more work on this, i'll keep you updated without
> > bothering the list each time.
> 
> Enclosed is a modified version of your package that gets it built and
> installed with or without a local libdivecomputer in /usr/local.
> Before, it would try to pick up -I/usr/local/include before the local
> installation of libdivecomputer.  (Hence the early include_directories.)
>  I haven't attempted to answer any questions on the port itself (except
> changing the category)---just get it working.
> 
> With this, I'm able to create and install the package, run it, connect
> to the "cloud", connect to some dive computers, etc.  I didn't try the
> facebook.
> 
> I've also enclosed a patch from Ingo's version---thank you again!


> diff -Napur subsurface/Makefile 
> /usr/ports/mystuff/multimedia/subsurface/Makefile
> --- subsurface/Makefile       Wed Aug  1 00:07:55 2018
> +++ /usr/ports/mystuff/multimedia/subsurface/Makefile Wed Aug  1 19:44:56 2018
> @@ -6,7 +6,7 @@ VER =         4.8.1
>  PKGNAME =    subsurface-${VER}
>  DISTNAME =   Subsurface-${VER}
>  
> -CATEGORIES = misc
> +CATEGORIES = multimedia

I'd never expect to find this in multimedia... misc seems perfect?

>  HOMEPAGE =   https://subsurface-divelog.org
>  MAINTAINER = Kristaps Dzonsons <krist...@bsd.lv>
>  
> @@ -57,7 +57,9 @@ pre-configure:
>       env AUTOCONF_VERSION=2.67 AUTOMAKE_VERSION=1.11 \
>           autoreconf -f -i .. && \
>       ../configure --without-libusb --without-hidapi --without-bluez \
> +         --prefix=${WRKSRC}/libdivecomputer/built \
>           --disable-shared --disable-examples --disable-doc && \
> -     gmake
> +     gmake && \
> +     gmake install 
>  
>  .include <bsd.port.mk>
> diff -Napur subsurface/patches/patch-CMakeLists_txt 
> /usr/ports/mystuff/multimedia/subsurface/patches/patch-CMakeLists_txt
> --- subsurface/patches/patch-CMakeLists_txt   Wed Aug  1 00:24:28 2018
> +++ /usr/ports/mystuff/multimedia/subsurface/patches/patch-CMakeLists_txt     
> Wed Aug  1 19:46:31 2018
> @@ -3,7 +3,7 @@ $OpenBSD$
>  Index: CMakeLists.txt
>  --- CMakeLists.txt.orig
>  +++ CMakeLists.txt
> -@@ -35,18 +35,18 @@ option(FORCE_LIBSSH "force linking with libssh to work
> +@@ -35,19 +35,21 @@ option(FORCE_LIBSSH "force linking with libssh to work
>   option(LIBGIT2_DYNAMIC "search for libgit2.so before libgit2.a" OFF)
>   
>   #Options regarding disabling parts of subsurface.
> @@ -24,9 +24,12 @@ Index: CMakeLists.txt
>  -option(MAKE_TESTS "Make the tests" ON)
>  +option(MAKE_TESTS "Make the tests" OFF)
>   
> ++include_directories(${CMAKE_SOURCE_DIR}/libdivecomputer/built/include)
> ++
>   SET(SUBSURFACE_TARGET_EXECUTABLE "DesktopExecutable" CACHE STRING "The type 
> of application, DesktopExecutable or MobileExecutable")
>   LIST(APPEND SUBSURFACE_ACCEPTED_EXECUTABLES  "DesktopExecutable" 
> "MobileExecutable")
> -@@ -122,7 +122,6 @@ include(pkgconfig_helper)
> + SET_PROPERTY(CACHE SUBSURFACE_TARGET_EXECUTABLE PROPERTY STRINGS 
> ${SUBSURFACE_ACCEPTED_EXECUTABLES})
> +@@ -122,7 +124,6 @@ include(pkgconfig_helper)
>   # if you think a module miss anything, take a look on the specific
>   # module file.
>   include(HandleFindGit2)
> @@ -34,15 +37,6 @@ Index: CMakeLists.txt
>   if(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable")
>           include(HandleFindGrantlee)
>       include(HandleUserManual)
> -@@ -147,6 +146,8 @@ include_directories(.
> -     ${CMAKE_CURRENT_BINARY_DIR}
> -     ${CMAKE_BINARY_DIR}
> -     ${CMAKE_BINARY_DIR}/desktop-widgets
> -+    ${CMAKE_SOURCE_DIR}/libdivecomputer/include
> -+    ${CMAKE_SOURCE_DIR}/libdivecomputer/build/include
> - )
> - 
> - # Project Target specific configuration should go here,
>  @@ -260,7 +261,7 @@ if(BLESUPPORT)
>   endif()
>   
> @@ -57,7 +51,7 @@ Index: CMakeLists.txt
>           endif()
>   
>  +    add_library(subsurface_dc STATIC IMPORTED)
> -+    set_target_properties(subsurface_dc PROPERTIES IMPORTED_LOCATION 
> ${CMAKE_SOURCE_DIR}/libdivecomputer/build/src/.libs/libdivecomputer.a)
> ++    set_target_properties(subsurface_dc PROPERTIES IMPORTED_LOCATION 
> ${CMAKE_SOURCE_DIR}/libdivecomputer/built/lib/libdivecomputer.a)
>  +
>       if(FBSUPPORT)
>               set(FACEBOOK_INTEGRATION facebook_integration)

Reply via email to