@@ -120,6 +120,10 @@ target_compile_definitions(cubool PRIVATE CUBOOL_VERSION_SUB=${CUBOOL_VERSION_SU
120120
121121target_compile_features (cubool PUBLIC cxx_std_14 )
122122
123+ target_compile_options (cubool PRIVATE $<$<COMPILE_LANGUAGE :CXX >: -Wall -Werror >)
124+ target_compile_options (cubool PRIVATE $<$<AND :$<BOOL :CUBOOL_RELEASE >,$<COMPILE_LANGUAGE :CXX >>: -O2 >)
125+ target_compile_options (cubool PRIVATE $<$<AND :$<BOOL :CUBOOL_DEBUG >,$<COMPILE_LANGUAGE :CXX >>: -O0 >)
126+
123127set_target_properties (cubool PROPERTIES CXX_STANDARD 17 )
124128set_target_properties (cubool PROPERTIES CXX_STANDARD_REQUIRED ON )
125129
@@ -129,6 +133,20 @@ if (CUBOOL_WITH_CUDA)
129133 set_target_properties (cubool PROPERTIES CUDA_STANDARD_REQUIRED ON )
130134 set_target_properties (cubool PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
131135
136+ # Settings: https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
137+ target_compile_options (cubool PRIVATE $<$<COMPILE_LANGUAGE :CUDA >:
138+ -arch =sm_50
139+ -gencode =arch =compute_50 ,code =sm_50
140+ -gencode =arch =compute_52 ,code =sm_52
141+ -gencode =arch =compute_60 ,code =sm_60
142+ -gencode =arch =compute_61 ,code =sm_61
143+ -gencode =arch =compute_70 ,code =sm_70
144+ -gencode =arch =compute_75 ,code =sm_75
145+ -gencode =arch =compute_75 ,code =compute_75 >)
146+
147+ target_compile_options (cubool PRIVATE $<$<AND :$<BOOL :CUBOOL_RELEASE >,$<COMPILE_LANGUAGE :CUDA >>: -Xptxas -O2 >)
148+ target_compile_options (cubool PRIVATE $<$<AND :$<BOOL :CUBOOL_DEBUG >,$<COMPILE_LANGUAGE :CUDA >>: -Xptxas -O0 >)
149+
132150 target_compile_definitions (cubool PRIVATE CUBOOL_WITH_CUDA )
133151 target_link_libraries (cubool PRIVATE nsparse_um )
134152endif ()
0 commit comments