Hi all,
I am trying to build HPX with support for APEX and run into two issues.
First, the APEX CMake script for integrating APEX with HPX assumes that
HPX is the main project (CMAKE_SOURCE_DIR is assumed to point to the HPX
source dir, but in my case points to my project's source dir). 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.
Second, my build of HPX with support for APEX almost succeeds, but not
completely (repro-case at bottom of this message):
/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
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users