Commit d1df2d98 authored by Sebastian Woelke's avatar Sebastian Woelke

Add hwloc to cmake build process

parent 4bad2c0f
...@@ -81,6 +81,10 @@ if(NOT CAF_NO_OPENSSL) ...@@ -81,6 +81,10 @@ if(NOT CAF_NO_OPENSSL)
set(CAF_NO_OPENSSL no) set(CAF_NO_OPENSSL no)
endif() endif()
if(NOT CAF_NO_HWLOC)
set(CAF_NO_HWLOC no)
endif()
if(NOT CAF_NO_PYTHON) if(NOT CAF_NO_PYTHON)
set(CAF_NO_PYTHON no) set(CAF_NO_PYTHON no)
endif() endif()
...@@ -402,7 +406,7 @@ add_custom_target(uninstall ...@@ -402,7 +406,7 @@ add_custom_target(uninstall
################################################################################ ################################################################################
# set inclue paths for subprojects # # set include paths for subprojects #
################################################################################ ################################################################################
# path to caf core & io headers # path to caf core & io headers
...@@ -525,6 +529,16 @@ if(NOT CAF_NO_OPENCL) ...@@ -525,6 +529,16 @@ if(NOT CAF_NO_OPENCL)
endif() endif()
endif() endif()
# load hwloc library if not told otherwise
if(NOT CAF_NO_HWLOC)
find_package(Hwloc)
if(Hwloc_FOUND)
add_optional_caf_lib(hwloc)
else()
set(CAF_NO_HWLOC yes)
endif()
endif()
# build Python binding if not being told otherwise # build Python binding if not being told otherwise
if(NOT CAF_NO_PYTHON AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libcaf_python/CMakeLists.txt") if(NOT CAF_NO_PYTHON AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libcaf_python/CMakeLists.txt")
add_subdirectory(libcaf_python) add_subdirectory(libcaf_python)
...@@ -705,6 +719,7 @@ invertYesNo(CAF_NO_MEM_MANAGEMENT CAF_BUILD_MEM_MANAGEMENT) ...@@ -705,6 +719,7 @@ invertYesNo(CAF_NO_MEM_MANAGEMENT CAF_BUILD_MEM_MANAGEMENT)
invertYesNo(CAF_NO_BENCHMARKS CAF_BUILD_BENCHMARKS) invertYesNo(CAF_NO_BENCHMARKS CAF_BUILD_BENCHMARKS)
invertYesNo(CAF_NO_OPENCL CAF_BUILD_OPENCL) invertYesNo(CAF_NO_OPENCL CAF_BUILD_OPENCL)
invertYesNo(CAF_NO_OPENSSL CAF_BUILD_OPENSSL) invertYesNo(CAF_NO_OPENSSL CAF_BUILD_OPENSSL)
invertYesNo(CAF_NO_HWLOC CAF_BUILD_HWLOC)
invertYesNo(CAF_NO_PYTHON CAF_BUILD_PYTHON) invertYesNo(CAF_NO_PYTHON CAF_BUILD_PYTHON)
# collect all compiler flags # collect all compiler flags
string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_BUILD_TYPE) string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_BUILD_TYPE)
...@@ -731,6 +746,7 @@ if(NOT CAF_NO_SUMMARY) ...@@ -731,6 +746,7 @@ if(NOT CAF_NO_SUMMARY)
"\nBuild benchmarks: ${CAF_BUILD_BENCHMARKS}" "\nBuild benchmarks: ${CAF_BUILD_BENCHMARKS}"
"\nBuild OpenCL: ${CAF_BUILD_OPENCL}" "\nBuild OpenCL: ${CAF_BUILD_OPENCL}"
"\nBuild OpenSSL: ${CAF_BUILD_OPENSSL}" "\nBuild OpenSSL: ${CAF_BUILD_OPENSSL}"
"\nBuild hwloc: ${CAF_BUILD_HWLOC}"
"\nBuild Python: ${CAF_BUILD_PYTHON}" "\nBuild Python: ${CAF_BUILD_PYTHON}"
"\n" "\n"
"\nCXX: ${CMAKE_CXX_COMPILER}" "\nCXX: ${CMAKE_CXX_COMPILER}"
......
benchmarks @ c2cdbbb3
Subproject commit c2cdbbb3824f405eb06ff9413416cacac66f7534
# - Try to find hwloc
# Once done this will define
#
# Hwloc_FOUND - system has Hwloc
# Hwloc_INCLUDE_DIRS - the Hwloc include directory
# Hwloc_LIBRARIES - link these to use Hwloc
# Hwloc_VERSION - version
#
# WIN32 should work, but is untested
if (WIN32)
find_path(Hwloc_INCLUDE_DIRS
NAMES
hwloc.h
PATHS
ENV "PROGRAMFILES(X86)"
ENV HWLOC_ROOT
PATH_SUFFIXES
include
)
find_library(Hwloc_LIBRARY
NAMES
libhwloc.lib
PATHS
ENV "PROGRAMFILES(X86)"
ENV HWLOC_ROOT
PATH_SUFFIXES
lib
)
find_program(HWLOC_INFO_EXECUTABLE
NAMES
hwloc-info
PATHS
ENV HWLOC_ROOT
PATH_SUFFIXES
bin
)
if(HWLOC_INFO_EXECUTABLE)
execute_process(
COMMAND ${HWLOC_INFO_EXECUTABLE} "--version"
OUTPUT_VARIABLE HWLOC_VERSION_LINE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(REGEX MATCH "([0-9]+.[0-9]+)$"
Hwloc_VERSION "${HWLOC_VERSION_LINE}")
unset(HWLOC_VERSION_LINE)
endif()
set(Hwloc_LIBRARIES ${Hwloc_LIBRARY})
set(Hwloc_INCLUDE_DIRS ${Hwloc_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Hwloc
FOUND_VAR Hwloc_FOUND
REQUIRED_VARS Hwloc_LIBRARY Hwloc_INCLUDE_DIR
VERSION_VAR Hwloc_VERSION
)
mark_as_advanced(
Hwloc_INCLUDE_DIR
Hwloc_LIBRARY
)
else()
find_package(PkgConfig)
pkg_check_modules(Hwloc QUIET hwloc)
if(Hwloc_FOUND)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Hwloc DEFAULT_MSG Hwloc_LIBRARIES)
message(STATUS "Found hwloc version ${Hwloc_VERSION}")
endif()
endif()
...@@ -42,4 +42,8 @@ ...@@ -42,4 +42,8 @@
#define CAF_NO_EXCEPTIONS #define CAF_NO_EXCEPTIONS
#endif #endif
#if @CAF_NO_HWLOC@ != -1
#define CAF_NO_HWLOC
#endif
#endif //CAF_DETAIL_BUILD_CONFIG_HPP #endif //CAF_DETAIL_BUILD_CONFIG_HPP
...@@ -67,6 +67,7 @@ Usage: $0 [OPTION]... [VAR=VALUE]... ...@@ -67,6 +67,7 @@ Usage: $0 [OPTION]... [VAR=VALUE]...
--no-unit-tests build without unit tests --no-unit-tests build without unit tests
--no-opencl build without OpenCL module --no-opencl build without OpenCL module
--no-openssl build without OpenSSL module --no-openssl build without OpenSSL module
--no-hwloc build without NUMA related optimizations
--no-benchmarks build without benchmarks --no-benchmarks build without benchmarks
--no-tools build without CAF tools such as caf-run --no-tools build without CAF tools such as caf-run
--no-io build without I/O module --no-io build without I/O module
...@@ -347,6 +348,9 @@ while [ $# -ne 0 ]; do ...@@ -347,6 +348,9 @@ while [ $# -ne 0 ]; do
--no-openssl) --no-openssl)
append_cache_entry CAF_NO_OPENSSL BOOL yes append_cache_entry CAF_NO_OPENSSL BOOL yes
;; ;;
--no-hwloc)
append_cache_entry CAF_NO_HWLOC BOOL yes
;;
--build-static) --build-static)
append_cache_entry CAF_BUILD_STATIC BOOL yes append_cache_entry CAF_BUILD_STATIC BOOL yes
;; ;;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment