I think the real problem here is that the latest HPX release actually pulls 
latest APEX develop, and not the tag we specify. Specifying a tag is supposed 
to avoid situations exactly like this but that doesn't work (master may 
sometimes not work until the dependencies have been updated in APEX, but that's 
okish. Actually, if we update dependencies in APEX first, tag it, and update 
the tag in HPX when a module is introduced even master won't be broken).

The workaround for 1.3.0 is to do as Kevin suggested, but with the 2.1.3 tag. 
For HPX master you'll need APEX develop.

I'll try to fix the way we fetch APEX, and we'll maybe make a patch release 
with that fix.

Mikael
________________________________________
From: hpx-users-boun...@stellar.cct.lsu.edu 
[hpx-users-boun...@stellar.cct.lsu.edu] on behalf of Hartmut Kaiser 
[hartmut.kai...@gmail.com]
Sent: Tuesday, June 04, 2019 5:47 PM
To: hpx-users@stellar.cct.lsu.edu; Biddiscombe, John A.
Subject: Re: [hpx-users] Link error building HPX with support for APEX

> Yeah, HPX changed build dependencies without warning, these are now fixed.

Yes, sorry guys. When we started with the modularization effort, we didn't
realize that APEX and hpxMP will require special handling (as those are
essentially modules on their own.

Regards Hartmut
---------------
http://stellar.cct.lsu.edu
https://github.com/STEllAR-GROUP/hpx


> You'll need to add an extra option to the HPX config to pull the latest
> from APEX:
>
> -DHPX_WITH_APEX_NO_UPDATE=FALSE -DHPX_WITH_APEX_TAG=develop
>
> Thanks -
> Kevin
>
> > On Jun 4, 2019, at 1:24 AM, Biddiscombe, John A. <biddi...@cscs.ch>
> wrote:
> >
> >> I use the FetchContent module to integrate HPX into my project, which
> means my project is the main project. I think some paths in APEX'
> CMakeLists.hpx need to be adjusted, which I have done locally. Once I have
> the whole build working I can provide a patch or pull request with my
> edits.
> >
> > Please do submit a PR (to the APEX repo though if it needs fixes) - I
> thought I had fixed all those ages ago, but I guess some new ones have
> crept in.
> >
> >>>>
> > Second, my build of HPX with support for APEX almost succeeds, but not
> completely (repro-case at bottom of this message):
> > <<<
> >
> > My local projects that build using HPX are also failing with the similar
> problems related to hpx_cache and also hpx/config.hpp include directory
> problems.
> > Can you confirm if you are using master branch, or a 1.3 release - the
> cache stuff was not present in the 1.3 release.
> >
> > Thanks
> >
> > JB
> >
> > /usr/bin/ld: cannot find -lhpx_cache
> > collect2: error: ld returned 1 exit status
> > _deps/hpx-build/src/CMakeFiles/hpx.dir/build.make:2769: recipe for
> > target 'lib/libhpx.so.1.3.0' failed
> > make[2]: *** [lib/libhpx.so.1.3.0] Error 1
> > CMakeFiles/Makefile2:1112: recipe for target '_deps/hpx-
> build/src/CMakeFiles/hpx.dir/all' failed Building with HPX_WITH_APEX=OFF
> succeeds, building with HPX_WITH_APEX=ON fails for lack of hpx_cache. I
> cannot find any reference to the hpx_cache library in the HPX and APEX
> sources. It is mentioned in three files in HPX' build directory, though:
> > ./CMakeFiles/Export/lib/cmake/HPX/HPXTargets.cmake
> > ./lib/cmake/HPX/HPXTargets.cmake
> > ./src/CMakeFiles/hpx.dir/link.txt
> >
> > The CMake scripts contain this snippet:
> > set_target_properties(apex PROPERTIES
> >
> >   INTERFACE_COMPILE_OPTIONS "-std=c++17"
> >
> >   INTERFACE_LINK_LIBRARIES "hpx_cache"
> >
> > )
> >
> > Does anyone know how I can make my build succeed?
> >
> > Thanks!
> >
> > Kor
> >
> >
> >
> > The simplest CMakeLists.txt with which I can recreate the issue is this
> one:
> >
> > # dummy/CMakeLists.txt
> > cmake_minimum_required(VERSION 3.12)
> > project(dummy LANGUAGES CXX)
> >
> > include(FetchContent)
> >
> > set(HPX_WITH_EXAMPLES OFF CACHE BOOL "") set(HPX_WITH_TESTS OFF CACHE
> > BOOL "") set(HPX_WITH_APEX ON CACHE BOOL "")
> >
> > FetchContent_Declare(hpx
> >     GIT_REPOSITORY https://github.com/STEllAR-GROUP/hpx
> >     GIT_TAG 1.3.0
> > )
> >
> > FetchContent_GetProperties(hpx)
> >
> > if(NOT hpx_POPULATED)
> >
> >     FetchContent_Populate(hpx)
> >
> >     if(HPX_WITH_APEX)
> >         # I think something like this should be done in
> >         # APEX' CMakeLists.hpx
> >         include_directories(
> >             ${hpx_SOURCE_DIR}/libs/preprocessor/include
> >             ${hpx_SOURCE_DIR}/apex/src/apex
> >             ${hpx_SOURCE_DIR}/apex/src/contrib)
> >
> >     endif()
> >
> >     add_subdirectory(${hpx_SOURCE_DIR} ${hpx_BINARY_DIR})
> >
> > endif()
> > # / dummy/CMakeLists.txt
> >
> > The project can be built (until the above link error) like this:
> >
> > mkdir dummy/build
> > cd dummy/build
> > cmake ..
> > make
> > _______________________________________________
> > hpx-users mailing list
> > hpx-users@stellar.cct.lsu.edu
> > https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
> >
>
> --
> Kevin Huck, PhD
> Research Associate / Computer Scientist
> OACISS - Oregon Advanced Computing Institute for Science and Society
> University of Oregon kh...@cs.uoregon.edu http://tau.uoregon.edu
>
>
>
>
>
>
>
> _______________________________________________
> hpx-users mailing list
> hpx-users@stellar.cct.lsu.edu
> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


_______________________________________________
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
_______________________________________________
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users

Reply via email to