Skip to content

Commit 7d3e6dd

Browse files
authored
Merge pull request #519 from psychocoderHPC/topic-cmakeBackports3
backport cmake changes for bug fix release 0.3.1
2 parents 610492c + 5a0ad99 commit 7d3e6dd

File tree

10 files changed

+83
-20
lines changed

10 files changed

+83
-20
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ env:
102102

103103
# clang++
104104
# Analysis builds
105-
- ALPAKA_CI_DOCKER_BASE_IMAGE_NAME=ubuntu:14.04 CXX=clang++ CC=clang ALPAKA_CI_CLANG_VER=3.9.1 CMAKE_BUILD_TYPE=Debug ALPAKA_CI_BOOST_BRANCH=boost-1.62.0 ALPAKA_CI_CMAKE_VER=3.9.6 ALPAKA_CI_SANITIZERS= ALPAKA_CI_ANALYSIS=ON ALPAKA_DEBUG=2 ALPAKA_ACC_GPU_CUDA_ENABLE=ON ALPAKA_CUDA_VER=7.5 ALPAKA_CUDA_COMPILER=clang
105+
- ALPAKA_CI_DOCKER_BASE_IMAGE_NAME=ubuntu:14.04 CXX=clang++ CC=clang ALPAKA_CI_CLANG_VER=4.0.0 CMAKE_BUILD_TYPE=Debug ALPAKA_CI_BOOST_BRANCH=boost-1.66.0 ALPAKA_CI_CMAKE_VER=3.9.6 ALPAKA_CI_SANITIZERS= ALPAKA_CI_ANALYSIS=ON ALPAKA_DEBUG=2 ALPAKA_ACC_GPU_CUDA_ENABLE=ON ALPAKA_CUDA_VER=8.0 ALPAKA_CUDA_COMPILER=clang
106106
- ALPAKA_CI_DOCKER_BASE_IMAGE_NAME=ubuntu:16.04 CXX=clang++ CC=clang ALPAKA_CI_CLANG_VER=3.7.1 CMAKE_BUILD_TYPE=Debug ALPAKA_CI_BOOST_BRANCH=boost-1.65.1 ALPAKA_CI_CMAKE_VER=3.7.2 ALPAKA_CI_SANITIZERS= ALPAKA_CI_ANALYSIS=ON ALPAKA_DEBUG=2
107107

108108
# Debug builds

alpakaConfig.cmake

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ UNSET(_ALPAKA_COMMON_FILE)
4949
UNSET(_ALPAKA_ADD_EXECUTABLE_FILE)
5050
UNSET(_ALPAKA_ADD_LIBRRAY_FILE)
5151
UNSET(_ALPAKA_FILES_HEADER)
52-
UNSET(_ALPAKA_FILES_SOURCE)
5352
UNSET(_ALPAKA_FILES_OTHER)
5453
UNSET(_ALPAKA_VERSION_DEFINE)
5554
UNSET(_ALPAKA_VER_MAJOR)
@@ -128,7 +127,7 @@ IF(${ALPAKA_DEBUG} GREATER 1)
128127
SET(Boost_DETAILED_FAILURE_MSG ON)
129128
ENDIF()
130129
IF(ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE)
131-
FIND_PACKAGE(Boost ${_ALPAKA_BOOST_MIN_VER} QUIET COMPONENTS fiber context system thread chrono date_time)
130+
FIND_PACKAGE(Boost ${_ALPAKA_BOOST_MIN_VER} QUIET COMPONENTS fiber context system thread atomic chrono date_time)
132131
IF(NOT Boost_FIBER_FOUND)
133132
MESSAGE(STATUS "Optional alpaka dependency Boost fiber could not be found! Fibers back-end disabled!")
134133
SET(ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE OFF CACHE BOOL "Enable the Fibers CPU back-end" FORCE)
@@ -207,8 +206,29 @@ IF(NOT Boost_FOUND)
207206
SET(_ALPAKA_FOUND FALSE)
208207

209208
ELSE()
210-
LIST(APPEND _ALPAKA_INCLUDE_DIRECTORIES_PUBLIC ${Boost_INCLUDE_DIRS})
211-
LIST(APPEND _ALPAKA_LINK_LIBRARIES_PUBLIC ${Boost_LIBRARIES})
209+
IF(Boost_FIBER_FOUND)
210+
# Boost fiber and default header-only libraries
211+
IF(TARGET Boost::fiber)
212+
LIST(APPEND _ALPAKA_LINK_LIBRARIES_PUBLIC
213+
Boost::boost
214+
Boost::fiber Boost::context Boost::system Boost::thread
215+
Boost::chrono Boost::date_time Boost::atomic
216+
)
217+
ELSE()
218+
# fallback: Boost version is too new for CMake
219+
LIST(APPEND _ALPAKA_INCLUDE_DIRECTORIES_PUBLIC ${Boost_INCLUDE_DIRS})
220+
LIST(APPEND _ALPAKA_LINK_LIBRARIES_PUBLIC ${Boost_LIBRARIES})
221+
ENDIF()
222+
ELSE()
223+
# header-only libraries
224+
IF(TARGET Boost::boost)
225+
LIST(APPEND _ALPAKA_LINK_LIBRARIES_PUBLIC Boost::boost)
226+
ELSE()
227+
# fallback: Boost version is too new for CMake
228+
LIST(APPEND _ALPAKA_INCLUDE_DIRECTORIES_PUBLIC ${Boost_INCLUDE_DIRS})
229+
LIST(APPEND _ALPAKA_LINK_LIBRARIES_PUBLIC ${Boost_LIBRARIES})
230+
ENDIF()
231+
ENDIF()
212232
ENDIF()
213233

214234
#-------------------------------------------------------------------------------
@@ -491,15 +511,13 @@ IF(ALPAKA_CI)
491511
ENDIF()
492512

493513
SET(_ALPAKA_INCLUDE_DIRECTORY "${_ALPAKA_ROOT_DIR}/include")
494-
LIST(APPEND _ALPAKA_INCLUDE_DIRECTORIES_PUBLIC "${_ALPAKA_INCLUDE_DIRECTORY}")
495514
SET(_ALPAKA_SUFFIXED_INCLUDE_DIR "${_ALPAKA_INCLUDE_DIRECTORY}/alpaka")
496515

497516
SET(_ALPAKA_LINK_LIBRARY)
498517
LIST(APPEND _ALPAKA_LINK_LIBRARIES_PUBLIC "${_ALPAKA_LINK_LIBRARY}")
499518

500519
# Add all the source and include files in all recursive subdirectories and group them accordingly.
501520
append_recursive_files_add_to_src_group("${_ALPAKA_SUFFIXED_INCLUDE_DIR}" "${_ALPAKA_SUFFIXED_INCLUDE_DIR}" "hpp" _ALPAKA_FILES_HEADER)
502-
append_recursive_files_add_to_src_group("${_ALPAKA_SUFFIXED_INCLUDE_DIR}" "${_ALPAKA_SUFFIXED_INCLUDE_DIR}" "cpp" _ALPAKA_FILES_SOURCE)
503521

504522
append_recursive_files_add_to_src_group("${_ALPAKA_ROOT_DIR}/script" "${_ALPAKA_ROOT_DIR}" "sh" _ALPAKA_FILES_SCRIPT)
505523
SET_SOURCE_FILES_PROPERTIES(${_ALPAKA_FILES_SCRIPT} PROPERTIES HEADER_FILE_ONLY TRUE)
@@ -517,9 +535,13 @@ SET_SOURCE_FILES_PROPERTIES(${_ALPAKA_FILES_OTHER} PROPERTIES HEADER_FILE_ONLY T
517535
#-------------------------------------------------------------------------------
518536
# Target.
519537
IF(NOT TARGET "alpaka")
520-
ADD_LIBRARY(
521-
"alpaka"
522-
${_ALPAKA_FILES_HEADER} ${_ALPAKA_FILES_SOURCE} ${_ALPAKA_FILES_SCRIPT} ${_ALPAKA_FILES_CMAKE} ${_ALPAKA_FILES_DOC} ${_ALPAKA_FILES_OTHER})
538+
ADD_LIBRARY("alpaka" INTERFACE)
539+
540+
# HACK: Workaround for the limitation that files added to INTERFACE targets (target_sources) can not be marked as PUBLIC or PRIVATE but only as INTERFACE.
541+
# Therefore those files will be added to projects "linking" to the INTERFACE library, but are not added to the project itself within an IDE.
542+
add_custom_target("alpakaIde"
543+
SOURCES ${_ALPAKA_FILES_HEADER} ${_ALPAKA_FILES_SCRIPT} ${_ALPAKA_FILES_CMAKE} ${_ALPAKA_FILES_DOC} ${_ALPAKA_FILES_OTHER}
544+
)
523545

524546
# Compile options.
525547
IF(${ALPAKA_DEBUG} GREATER 1)
@@ -532,7 +554,7 @@ IF(NOT TARGET "alpaka")
532554
IF(${_ALPAKA_COMPILE_OPTIONS_PUBLIC_LENGTH} GREATER 0)
533555
TARGET_COMPILE_OPTIONS(
534556
"alpaka"
535-
PUBLIC ${_ALPAKA_COMPILE_OPTIONS_PUBLIC})
557+
INTERFACE ${_ALPAKA_COMPILE_OPTIONS_PUBLIC})
536558
ENDIF()
537559

538560
# Compile definitions.
@@ -546,7 +568,7 @@ IF(NOT TARGET "alpaka")
546568
IF(${_ALPAKA_COMPILE_DEFINITIONS_PUBLIC_LENGTH} GREATER 0)
547569
TARGET_COMPILE_DEFINITIONS(
548570
"alpaka"
549-
PUBLIC ${_ALPAKA_COMPILE_DEFINITIONS_PUBLIC})
571+
INTERFACE ${_ALPAKA_COMPILE_DEFINITIONS_PUBLIC})
550572
ENDIF()
551573

552574
# Include directories.
@@ -560,8 +582,14 @@ IF(NOT TARGET "alpaka")
560582
IF(${_ALPAKA_INCLUDE_DIRECTORIES_PUBLIC_LENGTH} GREATER 0)
561583
TARGET_INCLUDE_DIRECTORIES(
562584
"alpaka"
563-
PUBLIC ${_ALPAKA_INCLUDE_DIRECTORIES_PUBLIC})
585+
SYSTEM
586+
INTERFACE ${_ALPAKA_INCLUDE_DIRECTORIES_PUBLIC})
564587
ENDIF()
588+
# the alpaka library itself
589+
TARGET_INCLUDE_DIRECTORIES(
590+
"alpaka"
591+
INTERFACE ${_ALPAKA_INCLUDE_DIRECTORY}
592+
)
565593

566594
# Link libraries.
567595
# There are no PUBLIC_LINK_FLAGS in CMAKE:
@@ -576,7 +604,7 @@ IF(NOT TARGET "alpaka")
576604
IF(${_ALPAKA_LINK_LIBRARIES_PUBLIC_LENGTH} GREATER 0)
577605
TARGET_LINK_LIBRARIES(
578606
"alpaka"
579-
PUBLIC ${_ALPAKA_LINK_LIBRARIES_PUBLIC} ${_ALPAKA_LINK_FLAGS_PUBLIC})
607+
INTERFACE ${_ALPAKA_LINK_LIBRARIES_PUBLIC} ${_ALPAKA_LINK_FLAGS_PUBLIC})
580608
ENDIF()
581609
ENDIF()
582610

@@ -604,6 +632,7 @@ list_add_prefix("-D" alpaka_DEFINITIONS)
604632
LIST(APPEND alpaka_DEFINITIONS ${_ALPAKA_COMPILE_OPTIONS_PUBLIC})
605633
SET(alpaka_INCLUDE_DIR ${_ALPAKA_INCLUDE_DIRECTORY})
606634
SET(alpaka_INCLUDE_DIRS ${_ALPAKA_INCLUDE_DIRECTORIES_PUBLIC})
635+
LIST(APPEND alpaka_INCLUDE_DIRS ${_ALPAKA_INCLUDE_DIRECTORY})
607636
SET(alpaka_LIBRARY ${_ALPAKA_LINK_LIBRARY})
608637
SET(alpaka_LIBRARIES ${_ALPAKA_LINK_FLAGS_PUBLIC})
609638
LIST(APPEND alpaka_LIBRARIES ${_ALPAKA_LINK_LIBRARIES_PUBLIC})
@@ -646,7 +675,6 @@ IF(NOT _ALPAKA_FOUND)
646675
UNSET(_ALPAKA_ADD_EXECUTABLE_FILE)
647676
UNSET(_ALPAKA_ADD_LIBRARY_FILE)
648677
UNSET(_ALPAKA_FILES_HEADER)
649-
UNSET(_ALPAKA_FILES_SOURCE)
650678
UNSET(_ALPAKA_FILES_OTHER)
651679
UNSET(_ALPAKA_BOOST_MIN_VER)
652680
UNSET(_ALPAKA_VERSION_DEFINE)
@@ -669,7 +697,6 @@ ELSE()
669697
_ALPAKA_ADD_EXECUTABLE_FILE
670698
_ALPAKA_ADD_LIBRARY_FILE
671699
_ALPAKA_FILES_HEADER
672-
_ALPAKA_FILES_SOURCE
673700
_ALPAKA_FILES_OTHER
674701
_ALPAKA_BOOST_MIN_VER
675702
_ALPAKA_VERSION_DEFINE

include/alpaka/core/Dummy.cpp

Lines changed: 0 additions & 1 deletion
This file was deleted.

include/alpaka/idx/bt/IdxBtCudaBuiltIn.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
#include <alpaka/vec/Vec.hpp>
3535
#include <alpaka/core/Cuda.hpp>
36+
#include <alpaka/core/Positioning.hpp>
3637

3738
//#include <boost/core/ignore_unused.hpp>
3839

include/alpaka/idx/gb/IdxGbCudaBuiltIn.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
#include <alpaka/vec/Vec.hpp>
3535
#include <alpaka/core/Cuda.hpp>
36+
#include <alpaka/core/Positioning.hpp>
3637

3738
//#include <boost/core/ignore_unused.hpp>
3839

include/alpaka/stream/StreamCudaRtAsync.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
#include <stdexcept>
4242
#include <memory>
4343
#include <functional>
44+
#include <mutex>
45+
#include <condition_variable>
46+
#include <thread>
4447

4548
namespace alpaka
4649
{

include/alpaka/stream/StreamCudaRtSync.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
#include <stdexcept>
4242
#include <memory>
4343
#include <functional>
44+
#include <mutex>
45+
#include <condition_variable>
4446

4547
namespace alpaka
4648
{

script/travis/compileExec.sh

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,36 @@
2626
# e: exit as soon as one command returns a non-zero exit code.
2727
set -eo pipefail
2828

29+
#-------------------------------------------------------------------------------
30+
31+
# create a cmake variable definition if an environment variable exists
32+
#
33+
# This function can not handle environment variables with spaces in its content.
34+
#
35+
# @param $1 environment variable name
36+
# @param $2 cmake variable name (optional)
37+
# if not defined than cmake variable name is equal to environment name
38+
#
39+
# @result if $2 exists cmake variable definition else nothing is returned
40+
#
41+
# @code{.bash}
42+
# FOO=ON
43+
# echo "$(env2cmake FOO)" # returns "-DFOO=ON"
44+
# echo "$(env2cmake FOO CMAKE_FOO_DEF)" # returns "-DCMAKE_FOO_DEF=ON"
45+
# echo "$(env2cmake BAR)" # returns nothing
46+
# @endcode
47+
function env2cmake()
48+
{
49+
if [ $# -ne 2 ] ; then
50+
cmakeName=$1
51+
else
52+
cmakeName=$2
53+
fi
54+
if [ -v "$1" ] ; then
55+
echo -n "-D$cmakeName=${!1}"
56+
fi
57+
}
58+
2959
#-------------------------------------------------------------------------------
3060
# Build and execute all tests.
3161
oldPath=${PWD}
@@ -38,7 +68,7 @@ cmake -G "Unix Makefiles" \
3868
-DALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLE="${ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLE}" -DALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLE="${ALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLE}" -DALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE="${ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE}" \
3969
-DALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE="${ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE}"\
4070
-DALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE="${ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE}" -DALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE="${ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE}" -DALPAKA_ACC_CPU_BT_OMP4_ENABLE="${ALPAKA_ACC_CPU_BT_OMP4_ENABLE}" \
41-
-DALPAKA_ACC_GPU_CUDA_ENABLE="${ALPAKA_ACC_GPU_CUDA_ENABLE}" -DALPAKA_CUDA_VERSION="${ALPAKA_CUDA_VER}" -DALPAKA_CUDA_COMPILER="${ALPAKA_CUDA_COMPILER}" -DALPAKA_ACC_GPU_CUDA_ONLY_MODE="${ALPAKA_ACC_GPU_CUDA_ONLY_MODE}" -DALPAKA_CUDA_ARCH="${ALPAKA_CUDA_ARCH}"\
71+
"$(env2cmake ALPAKA_ACC_GPU_CUDA_ENABLE)" "$(env2cmake ALPAKA_CUDA_VER ALPAKA_CUDA_VERSION)" "$(env2cmake ALPAKA_ACC_GPU_CUDA_ONLY_MODE)" "$(env2cmake ALPAKA_CUDA_ARCH)" "$(env2cmake ALPAKA_CUDA_COMPILER)" \
4272
-DALPAKA_DEBUG="${ALPAKA_DEBUG}" -DALPAKA_CI=ON \
4373
"../../"
4474
make VERBOSE=1

script/travis/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,5 @@ ${CXX} -v
7474

7575
source ./script/travis/prepare_sanitizers.sh
7676
if [ "${ALPAKA_CI_ANALYSIS}" == "ON" ] ;then ./script/travis/run_analysis.sh ;fi
77-
if [ "${ALPAKA_CI_ANALYSIS}" == "ON" -a "${ALPAKA_ACC_GPU_CUDA_ENABLE}" == "OFF" ] ;then ./script/travis/run_headerCheck.sh ;fi
77+
if [ "${ALPAKA_CI_ANALYSIS}" == "ON" ] ;then ./script/travis/run_headerCheck.sh ;fi
7878
if [ "${ALPAKA_CI_ANALYSIS}" == "OFF" ] ;then ./script/travis/run_tests.sh ;fi

test/analysis/headerCheck/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ ENDFOREACH()
8181
SET(_SOURCE_DIR "src/")
8282

8383
append_recursive_files_add_to_src_group("${_GENERATED_SOURCE_DIR}" "${_GENERATED_SOURCE_DIR}" "cpp" "_FILES_SOURCE")
84-
append_recursive_files_add_to_src_group("${_SOURCE_DIR}" "${_SOURCE_DIR}" "cpp" "_FILES_SOURCE")
84+
LIST(APPEND _FILES_SOURCE "src/main.cpp")
8585

8686
# Always add all files to the target executable build call to add them to the build project.
8787
ALPAKA_ADD_EXECUTABLE(

0 commit comments

Comments
 (0)