mirror of
https://github.com/boostorg/predef.git
synced 2025-07-29 11:37:13 +02:00
Add support for detecting CUDA (#71)
* add support for detecting CUDA * add test for new make macro
This commit is contained in:
committed by
Rene Rivera
parent
9e31c6455c
commit
e8681a9b37
@ -13,5 +13,6 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#include <boost/predef/language/stdc.h>
|
||||
#include <boost/predef/language/stdcpp.h>
|
||||
#include <boost/predef/language/objc.h>
|
||||
#include <boost/predef/language/cuda.h>
|
||||
|
||||
#endif
|
||||
|
52
include/boost/predef/language/cuda.h
Normal file
52
include/boost/predef/language/cuda.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
Copyright Benjamin Worpitz 2018
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_LANGUAGE_CUDA_H
|
||||
#define BOOST_PREDEF_LANGUAGE_CUDA_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
#include <boost/predef/make.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_LANG_CUDA`]
|
||||
|
||||
[@https://en.wikipedia.org/wiki/CUDA CUDA C/C++] language.
|
||||
If available, the version is detected as VV.RR.P.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__CUDACC__`] [__predef_detection__]]
|
||||
[[`__CUDA__`] [__predef_detection__]]
|
||||
|
||||
[[`CUDA_VERSION`] [VV.RR.P]]
|
||||
]
|
||||
*/
|
||||
|
||||
#define BOOST_LANG_CUDA BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
#if defined(__CUDACC__) || defined(__CUDA__)
|
||||
# undef BOOST_LANG_CUDA
|
||||
# include <cuda.h>
|
||||
# if defined(CUDA_VERSION)
|
||||
# define BOOST_LANG_CUDA BOOST_PREDEF_MAKE_10_VVRRP(CUDA_VERSION)
|
||||
# else
|
||||
# define BOOST_LANG_CUDA BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if BOOST_LANG_CUDA
|
||||
# define BOOST_LANG_CUDA_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_LANG_CUDA_NAME "CUDA C/C++"
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_CUDA,BOOST_LANG_CUDA_NAME)
|
@ -64,6 +64,8 @@ Macros are:
|
||||
#define BOOST_PREDEF_MAKE_10_VV00(V) BOOST_VERSION_NUMBER(((V)/100)%100,0,0)
|
||||
/*` `BOOST_PREDEF_MAKE_10_VVRR(V)` */
|
||||
#define BOOST_PREDEF_MAKE_10_VVRR(V) BOOST_VERSION_NUMBER(((V)/100)%100,(V)%100,0)
|
||||
/*` `BOOST_PREDEF_MAKE_10_VVRRP(V)` */
|
||||
#define BOOST_PREDEF_MAKE_10_VVRRP(V) BOOST_VERSION_NUMBER(((V)/1000)%100,((V)/10)%100,(V)%10)
|
||||
/*` `BOOST_PREDEF_MAKE_10_VVRRPP(V)` */
|
||||
#define BOOST_PREDEF_MAKE_10_VVRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100)
|
||||
/*` `BOOST_PREDEF_MAKE_10_VVRRPPP(V)` */
|
||||
|
@ -42,6 +42,7 @@ void test_BOOST_VERSION_NUMBER()
|
||||
PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VPPP(9999) == BOOST_VERSION_NUMBER(9,0,999));
|
||||
PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRRPP(999999) == BOOST_VERSION_NUMBER(99,99,99));
|
||||
PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR(9999) == BOOST_VERSION_NUMBER(99,99,0));
|
||||
PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRRP(98765) == BOOST_VERSION_NUMBER(98,76,5));
|
||||
PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRPP(9999) == BOOST_VERSION_NUMBER(9,9,99));
|
||||
PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRRPP(99999) == BOOST_VERSION_NUMBER(9,99,99));
|
||||
PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRPPPP(460002) == BOOST_VERSION_NUMBER(4,6,2));
|
||||
|
Reference in New Issue
Block a user