Skip to content

Commit 847aed6

Browse files
authored
Merge pull request #570 from ComputationalRadiationPhysics/release-0.3.2
Release 0.3.2 to master
2 parents fe33c4a + aa7cd18 commit 847aed6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+682
-399
lines changed

.travis.yml

Lines changed: 66 additions & 34 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -54,31 +54,32 @@ Accelerator Back-ends
5454
|OpenMP 4.0+ (CPU)|OpenMP 4.0+|Host CPU (multi core)|parallel (undefined)|parallel (preemptive multitasking)|
5555
| std::thread | std::thread |Host CPU (multi core)|sequential|parallel (preemptive multitasking)|
5656
| Boost.Fiber | boost::fibers::fiber |Host CPU (single core)|sequential|parallel (cooperative multitasking)|
57-
|TBB 2.2+ blocks|TBB 2.2+|Host CPU (multi core)|parallel (preemptive multitasking)|sequential (only 1 thread per block)|
58-
|CUDA 7.0+|CUDA 7.0+|NVIDIA GPUs SM 2.0+|parallel (undefined)|parallel (lock-step within warps)|
57+
|TBB|TBB 2.2+|Host CPU (multi core)|parallel (preemptive multitasking)|sequential (only 1 thread per block)|
58+
|CUDA|CUDA 7.0-9.2|NVIDIA GPUs|parallel (undefined)|parallel (lock-step within warps)|
5959

6060

6161
Supported Compilers
6262
-------------------
6363

6464
This library uses C++11 (or newer when available).
6565

66-
|Accelerator Back-end|gcc 4.9.2|gcc 5.4|gcc 6.3/7.2|clang 3.5/3.6|clang 3.7/3.8|clang 3.9|clang 4/5|MSVC 2017.5|
67-
|---|---|---|---|---|---|---|---|---|
68-
|Serial|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
69-
|OpenMP 2.0+ blocks|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
70-
|OpenMP 2.0+ threads|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
71-
|OpenMP 4.0+ (CPU)|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:x:|:white_check_mark:|:white_check_mark:|:x:|
72-
| std::thread |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
73-
| Boost.Fiber |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
74-
|TBB 2.2+|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
75-
|CUDA 7.0+|:white_check_mark: (nvcc 7.0+)|:white_check_mark: (nvcc 8.0+)|:x:|:white_check_mark: (nvcc 8.0+)|:white_check_mark: (nvcc 8.0+)|:white_check_mark: (native)|:white_check_mark: (native)|:x:|
66+
|Accelerator Back-end|gcc 4.9.2|gcc 5.4|gcc 6.3/7.2|clang 3.5/3.6|clang 3.7/3.8|clang 3.9|clang 4|clang 5|MSVC 2017.5|
67+
|---|---|---|---|---|---|---|---|
68+
|Serial|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
69+
|OpenMP 2.0+ blocks|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
70+
|OpenMP 2.0+ threads|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
71+
|OpenMP 4.0+ (CPU)|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|
72+
| std::thread |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
73+
| Boost.Fiber |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
74+
|TBB|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
75+
|CUDA (nvcc)|:white_check_mark: <br/> (CUDA 7.0-9.2)|:white_check_mark: <br/> (CUDA 9.0-9.2)|:white_check_mark: <br/> (CUDA 9.2)|:white_check_mark: <br/> (CUDA 8.0)|:x:|:white_check_mark: <br/> (CUDA 9.1-9.2)|:white_check_mark: <br/> (CUDA 9.1-9.2)|:x:|:x:|
76+
|CUDA (clang) | - | - | - | - | - | - | :white_check_mark: <br/> (CUDA 8.0)| :white_check_mark: <br/> (CUDA 8.0) | - |
7677

7778

7879
Dependencies
7980
------------
8081

81-
[Boost](http://boost.org/) 1.62+ is the only mandatory external dependency.
82+
[Boost](http://boost.org/) 1.62+ is the only mandatory external dependency (for CUDA 9+ Boost >=1.65.1 is required).
8283
The **alpaka** library itself just requires header-only libraries.
8384
However some of the accelerator back-end implementations require different boost libraries to be built.
8485

alpakaConfig.cmake

Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright 2014-2017 Benjamin Worpitz, Erik Zenker
2+
# Copyright 2014-2018 Benjamin Worpitz, Erik Zenker, Axel Huebl
33
#
44
# This file is part of alpaka.
55
#
@@ -50,10 +50,6 @@ UNSET(_ALPAKA_ADD_EXECUTABLE_FILE)
5050
UNSET(_ALPAKA_ADD_LIBRRAY_FILE)
5151
UNSET(_ALPAKA_FILES_HEADER)
5252
UNSET(_ALPAKA_FILES_OTHER)
53-
UNSET(_ALPAKA_VERSION_DEFINE)
54-
UNSET(_ALPAKA_VER_MAJOR)
55-
UNSET(_ALPAKA_VER_MINOR)
56-
UNSET(_ALPAKA_VER_PATCH)
5753

5854
#-------------------------------------------------------------------------------
5955
# Common.
@@ -119,6 +115,18 @@ IF(${ALPAKA_DEBUG} GREATER 1)
119115
MESSAGE(STATUS "CMAKE_BUILD_TYPE : ${CMAKE_BUILD_TYPE}")
120116
ENDIF()
121117

118+
#-------------------------------------------------------------------------------
119+
# Check supported compilers.
120+
IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
121+
MESSAGE(FATAL_ERROR "Clang versions < 3.5 are not supported!")
122+
SET(_ALPAKA_FOUND FALSE)
123+
ENDIF()
124+
125+
IF(ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE AND ALPAKA_ACC_GPU_CUDA_ENABLE)
126+
MESSAGE(FATAL_ERROR "Fibers and CUDA back-end can not be enabled both at the same time.")
127+
SET(_ALPAKA_FOUND FALSE)
128+
ENDIF()
129+
122130
#-------------------------------------------------------------------------------
123131
# Find Boost.
124132
SET(_ALPAKA_BOOST_MIN_VER "1.62.0")
@@ -325,6 +333,20 @@ IF(ALPAKA_ACC_GPU_CUDA_ENABLE)
325333
OPTION(ALPAKA_CUDA_KEEP_FILES "Keep all intermediate files that are generated during internal compilation steps (folder: nvcc_tmp)" OFF)
326334

327335
IF(ALPAKA_CUDA_COMPILER MATCHES "clang")
336+
IF(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
337+
MESSAGE(FATAL_ERROR "Using clang as CUDA compiler is only possible if clang is the host compiler!")
338+
ENDIF()
339+
340+
IF(CMAKE_CXX_COMPILER_VERSION LESS 6.0)
341+
IF(CUDA_VERSION GREATER_EQUAL 9.0)
342+
MESSAGE(FATAL_ERROR "Clang versions lower than 6 do not support CUDA 9 or greater!")
343+
ENDIF()
344+
ELSEIF(CMAKE_CXX_COMPILER_VERSION LESS 7.0)
345+
IF(CUDA_VERSION GREATER_EQUAL 9.2)
346+
MESSAGE(FATAL_ERROR "Clang versions lower than 7 do not support CUDA 9.2 or greater!")
347+
ENDIF()
348+
ENDIF()
349+
328350
FOREACH(_CUDA_ARCH_ELEM ${ALPAKA_CUDA_ARCH})
329351
LIST(APPEND _ALPAKA_COMPILE_OPTIONS_PUBLIC "--cuda-gpu-arch=sm_${_CUDA_ARCH_ELEM}")
330352
ENDFOREACH()
@@ -357,6 +379,46 @@ IF(ALPAKA_ACC_GPU_CUDA_ENABLE)
357379
ENDIF()
358380

359381
ELSE()
382+
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
383+
IF(CUDA_VERSION VERSION_EQUAL 8.0)
384+
IF(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 5.4)
385+
MESSAGE(FATAL_ERROR "NVCC 8.0 does not support GCC 5.4+. Please use GCC 4.9 - 5.3!")
386+
ENDIF()
387+
ELSEIF((CUDA_VERSION VERSION_EQUAL 9.0) OR (CUDA_VERSION VERSION_EQUAL 9.1))
388+
IF(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 6.0)
389+
MESSAGE(FATAL_ERROR "NVCC 9.0 - 9.1 do not support GCC 7+ and fail compiling the std::tuple implementation in GCC 6+. Please use GCC 4.9 - 5.5!")
390+
ENDIF()
391+
ELSEIF(CUDA_VERSION VERSION_EQUAL 9.2)
392+
IF(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 8.0)
393+
MESSAGE(FATAL_ERROR "NVCC 9.2 does not support GCC 8+. Please use GCC 4.9, 5, 6 or 7!")
394+
ENDIF()
395+
ENDIF()
396+
ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
397+
IF(CUDA_VERSION VERSION_EQUAL 8.0)
398+
IF(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 4.0)
399+
MESSAGE(FATAL_ERROR "NVCC 8.0 does not support clang 4+. Please use NVCC 9.1!")
400+
ENDIF()
401+
ELSEIF(CUDA_VERSION VERSION_EQUAL 9.0)
402+
IF(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 4.0)
403+
MESSAGE(FATAL_ERROR "NVCC 9.0 does not support clang 4+. Please use NVCC 9.1!")
404+
ENDIF()
405+
ELSEIF(CUDA_VERSION VERSION_EQUAL 9.1)
406+
IF(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 5.0)
407+
MESSAGE(FATAL_ERROR "NVCC 9.1 does not support clang 5+. Please use clang 4!")
408+
ENDIF()
409+
ELSEIF(CUDA_VERSION VERSION_EQUAL 9.2)
410+
IF(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 6.0)
411+
MESSAGE(FATAL_ERROR "NVCC 9.2 does not support clang 6+ and fails compiling with clang 5. Please use clang 4!")
412+
ENDIF()
413+
ENDIF()
414+
ENDIF()
415+
416+
# CUDA 9.0 removed the __CUDACC_VER__ macro. Boost versions lower than 1.65.1 still use this macro.
417+
IF(CUDA_VERSION VERSION_GREATER_EQUAL 9.0 AND Boost_VERSION VERSION_LESS 1.65.1)
418+
MESSAGE(WARNING "CUDA 9.0 or newer requires boost-1.65.1 or newer!")
419+
SET(_ALPAKA_FOUND FALSE)
420+
ENDIF()
421+
360422
# Clean up the flags. Else, multiple find calls would result in duplicate flags. Furthermore, other modules may have set different settings.
361423
SET(CUDA_NVCC_FLAGS)
362424

@@ -386,8 +448,6 @@ IF(ALPAKA_ACC_GPU_CUDA_ENABLE)
386448

387449
IF(NOT MSVC)
388450
LIST(APPEND CUDA_NVCC_FLAGS "-std=c++11")
389-
ELSE()
390-
LIST(APPEND _ALPAKA_COMPILE_DEFINITIONS_PUBLIC "_HAS_ITERATOR_DEBUGGING=0")
391451
ENDIF()
392452

393453
SET(CUDA_HOST_COMPILER "${CMAKE_CXX_COMPILER}")
@@ -677,10 +737,6 @@ IF(NOT _ALPAKA_FOUND)
677737
UNSET(_ALPAKA_FILES_HEADER)
678738
UNSET(_ALPAKA_FILES_OTHER)
679739
UNSET(_ALPAKA_BOOST_MIN_VER)
680-
UNSET(_ALPAKA_VERSION_DEFINE)
681-
UNSET(_ALPAKA_VER_MAJOR)
682-
UNSET(_ALPAKA_VER_MINOR)
683-
UNSET(_ALPAKA_VER_PATCH)
684740
ELSE()
685741
# Make internal variables advanced options in the GUI.
686742
MARK_AS_ADVANCED(
@@ -698,11 +754,7 @@ ELSE()
698754
_ALPAKA_ADD_LIBRARY_FILE
699755
_ALPAKA_FILES_HEADER
700756
_ALPAKA_FILES_OTHER
701-
_ALPAKA_BOOST_MIN_VER
702-
_ALPAKA_VERSION_DEFINE
703-
_ALPAKA_VER_MAJOR
704-
_ALPAKA_VER_MINOR
705-
_ALPAKA_VER_PATCH)
757+
_ALPAKA_BOOST_MIN_VER)
706758
ENDIF()
707759

708760
###############################################################################

appveyor.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,11 @@ before_build:
121121

122122
#-------------------------------------------------------------------------------
123123
# Clone boost.
124-
- cmd: set BOOST_ROOT=C:\projects\boost
124+
- cmd: set ALPAKA_CI_BOOST_ROOT_DIR=C:\projects\boost
125125
- cmd: set ALPAKA_B2_STAGE_DIR=C:\projects\boost_libs
126-
- cmd: set BOOST_LIBRARYDIR=%ALPAKA_B2_STAGE_DIR%\lib
127-
- cmd: git clone -b %ALPAKA_BOOST_BRANCH% --recursive --single-branch --depth 1 https://github.com/boostorg/boost.git %BOOST_ROOT%
128-
- cmd: cd %BOOST_ROOT%
126+
- cmd: set ALPAKA_CI_BOOST_LIB_DIR=%ALPAKA_B2_STAGE_DIR%\lib
127+
- cmd: git clone -b %ALPAKA_BOOST_BRANCH% --recursive --single-branch --depth 1 https://github.com/boostorg/boost.git %ALPAKA_CI_BOOST_ROOT_DIR%
128+
- cmd: cd %ALPAKA_CI_BOOST_ROOT_DIR%
129129

130130
# Prepare building of boost.
131131
- cmd: call bootstrap.bat
@@ -166,7 +166,7 @@ before_build:
166166
- cmd: if "%PLATFORM%"=="x64" set ALPAKA_CMAKE_GENERATOR=%ALPAKA_CMAKE_GENERATOR% Win64
167167
- cmd: mkdir build
168168
- cmd: cd build
169-
- cmd: cmake -G "%ALPAKA_CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DTBB_ROOT_DIR="%TBB_ROOT_DIR%" -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" -DBoost_USE_STATIC_LIBS=ON -DBoost_USE_MULTITHREADED=ON -DBoost_USE_STATIC_RUNTIME=OFF -DALPAKA_DEBUG="%ALPAKA_DEBUG%" -DALPAKA_CI=ON ".."
169+
- cmd: cmake -G "%ALPAKA_CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DTBB_ROOT_DIR="%TBB_ROOT_DIR%" -DBOOST_ROOT="%ALPAKA_CI_BOOST_ROOT_DIR%" -DBOOST_LIBRARYDIR="%ALPAKA_CI_BOOST_LIB_DIR%" -DBoost_USE_STATIC_LIBS=ON -DBoost_USE_MULTITHREADED=ON -DBoost_USE_STATIC_RUNTIME=OFF -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%" -DALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE="%ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE%" -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%" -DALPAKA_ACC_GPU_CUDA_ENABLE="%ALPAKA_ACC_GPU_CUDA_ENABLE%" -DALPAKA_ACC_GPU_CUDA_ONLY_MODE="%ALPAKA_ACC_GPU_CUDA_ONLY_MODE%" -DALPAKA_DEBUG="%ALPAKA_DEBUG%" -DALPAKA_CI=APPVEYOR ".."
170170

171171
build:
172172
project: C:\projects\alpaka\build\alpakaAll.sln

cmake/dev.cmake

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
#-------------------------------------------------------------------------------
2222
# Compiler settings.
2323
#-------------------------------------------------------------------------------
24+
# By marking the boost headers as system headers, warnings produced within them are ignored.
25+
# Marking the boost headers as system headers does not work for nvcc (FindCUDA always uses -I)
26+
TARGET_INCLUDE_DIRECTORIES(
27+
"alpaka"
28+
SYSTEM
29+
INTERFACE ${Boost_INCLUDE_DIRS})
2430

2531
#MSVC
2632
IF(MSVC)
@@ -41,6 +47,7 @@ IF(MSVC)
4147
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "/Zc:throwingNew" "/Zc:strictStrings")
4248
ENDIF()
4349
ELSE()
50+
IF(NOT (ALPAKA_ACC_GPU_CUDA_ENABLE AND NOT ALPAKA_CUDA_COMPILER MATCHES "clang"))
4451
# GNU
4552
IF(CMAKE_COMPILER_IS_GNUCXX)
4653
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Wall")
@@ -111,12 +118,16 @@ ELSE()
111118
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Wduplicated-cond")
112119
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Wsubobject-linkage")
113120
ENDIF()
114-
# By marking the boost headers as system headers, warnings produced within them are ignored.
115-
FIND_PACKAGE(Boost QUIET)
116-
IF(NOT Boost_FOUND)
117-
MESSAGE(FATAL_ERROR "Required alpaka dependency Boost.Test could not be found!")
121+
IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
122+
# This warning might be useful but it is triggered by comile-time code where it does not make any sense:
123+
# E.g. "vec::Vec<dim::DimInt<(TidxDimOut < TidxDimIn) ? TidxDimIn : TidxDimOut>, TElem>" when both values are equal
124+
#LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Wduplicated-branches")
125+
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Walloc-zero")
126+
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Walloca")
127+
ENDIF()
128+
IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
129+
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Wcast-align=strict")
118130
ENDIF()
119-
INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS})
120131

121132
# Clang or AppleClang
122133
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
@@ -133,13 +144,12 @@ ELSE()
133144
# as they are stored as members. Therefore, the padding warning is triggered by the calling code
134145
# and does not indicate a failure within alpaka.
135146
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Wno-padded")
136-
# By marking the boost headers as system headers, warnings produced within them are ignored.
137-
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "--system-header-prefix=boost/")
138147
# ICC
139148
ELSEIF(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
140149
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Wall")
141150
# PGI
142151
ELSEIF(${CMAKE_CXX_COMPILER_ID} STREQUAL "PGI")
143152
LIST(APPEND ALPAKA_DEV_COMPILE_OPTIONS "-Minform=inform")
144153
ENDIF()
145-
ENDIF()
154+
ENDIF()
155+
ENDIF()

example/bufferCopy/CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,25 @@ SET(_SOURCE_DIR "src/")
5353
# Add all the source files in all recursive subdirectories and group them accordingly.
5454
append_recursive_files_add_to_src_group("${_SOURCE_DIR}" "${_SOURCE_DIR}" "cpp" _FILES_SOURCE)
5555

56+
SET(_COMPILE_OPTIONS_PRIVATE ${ALPAKA_DEV_COMPILE_OPTIONS})
57+
5658
IF(MSVC)
5759
LIST(APPEND _COMPILE_DEFINITIONS_PRIVATE "/wd4996") # This function or variable may be unsafe. Consider using <safe_version> instead.
5860
ENDIF()
5961

62+
# NVCC does not incorporate the COMPILE_OPTIONS of a target but only the CMAKE_CXX_FLAGS
63+
IF(ALPAKA_ACC_GPU_CUDA_ENABLE AND NOT ALPAKA_CUDA_COMPILER MATCHES "clang")
64+
STRING(REPLACE ";" " " _COMPILE_OPTIONS_PRIVATE_STRING "${_COMPILE_OPTIONS_PRIVATE}")
65+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_COMPILE_OPTIONS_PRIVATE_STRING}")
66+
ENDIF()
67+
6068
# Always add all files to the target executable build call to add them to the build project.
6169
ALPAKA_ADD_EXECUTABLE(
6270
${_TARGET_NAME}
6371
${_FILES_SOURCE})
6472
TARGET_COMPILE_OPTIONS(
6573
${_TARGET_NAME}
66-
PRIVATE ${_COMPILE_DEFINITIONS_PRIVATE}
67-
PRIVATE ${ALPAKA_DEV_COMPILE_OPTIONS})
74+
PRIVATE ${_COMPILE_OPTIONS_PRIVATE})
6875
TARGET_LINK_LIBRARIES(
6976
${_TARGET_NAME}
7077
PUBLIC "alpaka")

example/helloWorld/CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,25 @@ SET(_SOURCE_DIR "src/")
5353
# Add all the source files in all recursive subdirectories and group them accordingly.
5454
append_recursive_files_add_to_src_group("${_SOURCE_DIR}" "${_SOURCE_DIR}" "cpp" _FILES_SOURCE)
5555

56+
SET(_COMPILE_OPTIONS_PRIVATE ${ALPAKA_DEV_COMPILE_OPTIONS})
57+
5658
IF(MSVC)
5759
LIST(APPEND _COMPILE_DEFINITIONS_PRIVATE "/wd4996") # This function or variable may be unsafe. Consider using <safe_version> instead.
5860
ENDIF()
5961

62+
# NVCC does not incorporate the COMPILE_OPTIONS of a target but only the CMAKE_CXX_FLAGS
63+
IF(ALPAKA_ACC_GPU_CUDA_ENABLE AND NOT ALPAKA_CUDA_COMPILER MATCHES "clang")
64+
STRING(REPLACE ";" " " _COMPILE_OPTIONS_PRIVATE_STRING "${_COMPILE_OPTIONS_PRIVATE}")
65+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_COMPILE_OPTIONS_PRIVATE_STRING}")
66+
ENDIF()
67+
6068
# Always add all files to the target executable build call to add them to the build project.
6169
ALPAKA_ADD_EXECUTABLE(
6270
${_TARGET_NAME}
6371
${_FILES_SOURCE})
6472
TARGET_COMPILE_OPTIONS(
6573
${_TARGET_NAME}
66-
PRIVATE ${_COMPILE_DEFINITIONS_PRIVATE}
67-
PRIVATE ${ALPAKA_DEV_COMPILE_OPTIONS})
74+
PRIVATE ${_COMPILE_OPTIONS_PRIVATE})
6875
TARGET_LINK_LIBRARIES(
6976
${_TARGET_NAME}
7077
PUBLIC "alpaka")

example/helloWorldLambda/CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,25 @@ SET(_SOURCE_DIR "src/")
5353
# Add all the source files in all recursive subdirectories and group them accordingly.
5454
append_recursive_files_add_to_src_group("${_SOURCE_DIR}" "${_SOURCE_DIR}" "cpp" _FILES_SOURCE)
5555

56+
SET(_COMPILE_OPTIONS_PRIVATE ${ALPAKA_DEV_COMPILE_OPTIONS})
57+
5658
IF(MSVC)
5759
LIST(APPEND _COMPILE_DEFINITIONS_PRIVATE "/wd4996") # This function or variable may be unsafe. Consider using <safe_version> instead.
5860
ENDIF()
5961

62+
# NVCC does not incorporate the COMPILE_OPTIONS of a target but only the CMAKE_CXX_FLAGS
63+
IF(ALPAKA_ACC_GPU_CUDA_ENABLE AND NOT ALPAKA_CUDA_COMPILER MATCHES "clang")
64+
STRING(REPLACE ";" " " _COMPILE_OPTIONS_PRIVATE_STRING "${_COMPILE_OPTIONS_PRIVATE}")
65+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_COMPILE_OPTIONS_PRIVATE_STRING}")
66+
ENDIF()
67+
6068
# Always add all files to the target executable build call to add them to the build project.
6169
ALPAKA_ADD_EXECUTABLE(
6270
${_TARGET_NAME}
6371
${_FILES_SOURCE})
6472
TARGET_COMPILE_OPTIONS(
6573
${_TARGET_NAME}
66-
PRIVATE ${_COMPILE_DEFINITIONS_PRIVATE}
67-
PRIVATE ${ALPAKA_DEV_COMPILE_OPTIONS})
74+
PRIVATE ${_COMPILE_OPTIONS_PRIVATE})
6875
TARGET_LINK_LIBRARIES(
6976
${_TARGET_NAME}
7077
PUBLIC "alpaka")

0 commit comments

Comments
 (0)