Skip to content
Snippets Groups Projects
Commit b0c3a917 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Cmake: skip *_impl.{cpp,cu} completely when explicit template instantiation is disabled

parent 18e25fcc
No related branches found
No related tags found
No related merge requests found
SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation )
set( common_SOURCES
${CURRENT_DIR}/VectorOperationsHost_impl.cpp
)
IF( BUILD_CUDA )
set( tnl_core_cuda_CUDA__SOURCES
${common_SOURCES}
${CURRENT_DIR}/ArrayOperationsHost_impl.cu
${CURRENT_DIR}/ArrayOperationsCuda_impl.cu
${CURRENT_DIR}/cuda-reduction-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-min_impl.cu
${CURRENT_DIR}/cuda-reduction-max_impl.cu
${CURRENT_DIR}/cuda-reduction-abs-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-abs-min_impl.cu
${CURRENT_DIR}/cuda-reduction-abs-max_impl.cu
${CURRENT_DIR}/cuda-reduction-and_impl.cu
${CURRENT_DIR}/cuda-reduction-or_impl.cu
${CURRENT_DIR}/cuda-reduction-l2-norm_impl.cu
${CURRENT_DIR}/cuda-reduction-lp-norm_impl.cu
${CURRENT_DIR}/cuda-reduction-equalities_impl.cu
${CURRENT_DIR}/cuda-reduction-inequalities_impl.cu
${CURRENT_DIR}/cuda-reduction-scalar-product_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-min_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-max_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-abs-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-abs-min_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-abs-max_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-l2-norm_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-lp-norm_impl.cu
${CURRENT_DIR}/cuda-prefix-sum_impl.cu
${CURRENT_DIR}/VectorOperationsCuda_impl.cu
PARENT_SCOPE )
ELSE()
if( ${WITH_TEMPLATES_INSTANTIATION} )
SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation )
set( common_SOURCES
${common_SOURCES}
${CURRENT_DIR}/ArrayOperationsHost_impl.cpp
${CURRENT_DIR}/ArrayOperationsCuda_impl.cpp
${CURRENT_DIR}/VectorOperationsHost_impl.cpp
)
ENDIF()
IF( BUILD_CUDA )
set( tnl_core_cuda_CUDA__SOURCES
${common_SOURCES}
${CURRENT_DIR}/ArrayOperationsHost_impl.cu
${CURRENT_DIR}/ArrayOperationsCuda_impl.cu
${CURRENT_DIR}/cuda-reduction-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-min_impl.cu
${CURRENT_DIR}/cuda-reduction-max_impl.cu
${CURRENT_DIR}/cuda-reduction-abs-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-abs-min_impl.cu
${CURRENT_DIR}/cuda-reduction-abs-max_impl.cu
${CURRENT_DIR}/cuda-reduction-and_impl.cu
${CURRENT_DIR}/cuda-reduction-or_impl.cu
${CURRENT_DIR}/cuda-reduction-l2-norm_impl.cu
${CURRENT_DIR}/cuda-reduction-lp-norm_impl.cu
${CURRENT_DIR}/cuda-reduction-equalities_impl.cu
${CURRENT_DIR}/cuda-reduction-inequalities_impl.cu
${CURRENT_DIR}/cuda-reduction-scalar-product_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-min_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-max_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-abs-sum_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-abs-min_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-abs-max_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-l2-norm_impl.cu
${CURRENT_DIR}/cuda-reduction-diff-lp-norm_impl.cu
${CURRENT_DIR}/cuda-prefix-sum_impl.cu
${CURRENT_DIR}/VectorOperationsCuda_impl.cu
PARENT_SCOPE )
ELSE()
set( common_SOURCES
${common_SOURCES}
${CURRENT_DIR}/ArrayOperationsHost_impl.cpp
${CURRENT_DIR}/ArrayOperationsCuda_impl.cpp
)
ENDIF()
set( tnl_core_cuda_SOURCES
${common_SOURCES}
${CURRENT_DIR}/cuda-reduction_impl.cpp
PARENT_SCOPE )
set( tnl_core_cuda_SOURCES
${common_SOURCES}
${CURRENT_DIR}/cuda-reduction_impl.cpp
PARENT_SCOPE )
endif()
......@@ -39,32 +39,31 @@ set( headers Array.h
StaticVector2D_impl.h
StaticVector3D_impl.h )
SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers )
set( common_SOURCES
${CURRENT_DIR}/SharedArray_impl.cpp
${CURRENT_DIR}/MultiArray_impl.cpp
${CURRENT_DIR}/Array_impl.cpp
${CURRENT_DIR}/StaticArray_impl.cpp
${CURRENT_DIR}/MultiVector_impl.cpp
${CURRENT_DIR}/SharedVector_impl.cpp
${CURRENT_DIR}/Vector_impl.cpp
${CURRENT_DIR}/StaticVector_impl.cpp
)
INSTALL( FILES ${headers} DESTINATION ${TNL_TARGET_INCLUDE_DIRECTORY}/Containers )
IF( BUILD_CUDA )
set( tnl_containers_CUDA__SOURCES
${common_SOURCES}
${CURRENT_DIR}/Array_impl.cu
${CURRENT_DIR}/SharedArray_impl.cu
${CURRENT_DIR}/MultiArray_impl.cu
${CURRENT_DIR}/StaticArray_impl.cu
${CURRENT_DIR}/Vector_impl.cu
${CURRENT_DIR}/StaticVector_impl.cu
PARENT_SCOPE )
ENDIF()
if( ${WITH_TEMPLATES_INSTANTIATION} )
SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers )
set( common_SOURCES
${CURRENT_DIR}/MultiArray_impl.cpp
${CURRENT_DIR}/Array_impl.cpp
${CURRENT_DIR}/StaticArray_impl.cpp
${CURRENT_DIR}/MultiVector_impl.cpp
${CURRENT_DIR}/Vector_impl.cpp
${CURRENT_DIR}/StaticVector_impl.cpp
)
set( tnl_containers_SOURCES
${common_SOURCES}
PARENT_SCOPE )
if( BUILD_CUDA )
set( tnl_containers_CUDA__SOURCES
${common_SOURCES}
${CURRENT_DIR}/Array_impl.cu
${CURRENT_DIR}/MultiArray_impl.cu
${CURRENT_DIR}/StaticArray_impl.cu
${CURRENT_DIR}/Vector_impl.cu
${CURRENT_DIR}/StaticVector_impl.cu
PARENT_SCOPE )
endif()
INSTALL( FILES ${headers} DESTINATION ${TNL_TARGET_INCLUDE_DIRECTORY}/Containers )
set( tnl_containers_SOURCES
${common_SOURCES}
PARENT_SCOPE )
endif()
......@@ -21,26 +21,27 @@ SET( headers BICGStab.h
UmfpackWrapper_impl.h
)
SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Solvers/Linear )
INSTALL( FILES ${headers} DESTINATION ${TNL_TARGET_INCLUDE_DIRECTORY}/Solvers/Linear )
if( ${WITH_TEMPLATES_INSTANTIATION} )
SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Solvers/Linear )
set( common_SOURCES ${CURRENT_DIR}/GMRES_impl.cpp
${CURRENT_DIR}/SOR_impl.cpp )
set( tnl_solvers_linear_SOURCES
${tnl_solvers_linear_krylov_SOURCES}
${tnl_solvers_linear_preconditioners_SOURCES}
${tnl_solvers_linear_stationary_SOURCES}
${common_SOURCES}
PARENT_SCOPE )
set( common_SOURCES ${CURRENT_DIR}/GMRES_impl.cpp
${CURRENT_DIR}/SOR_impl.cpp )
if( BUILD_CUDA)
set( tnl_solvers_linear_CUDA__SOURCES
${tnl_solvers_linear_krylov_CUDA__SOURCES}
${tnl_solvers_linear_preconditioners_CUDA_SOURCES}
${tnl_solvers_linear_stationary_CUDA__SOURCES}
set( tnl_solvers_linear_SOURCES
${tnl_solvers_linear_krylov_SOURCES}
${tnl_solvers_linear_preconditioners_SOURCES}
${tnl_solvers_linear_stationary_SOURCES}
${common_SOURCES}
PARENT_SCOPE )
endif()
INSTALL( FILES ${headers} DESTINATION ${TNL_TARGET_INCLUDE_DIRECTORY}/Solvers/Linear )
if( BUILD_CUDA)
set( tnl_solvers_linear_CUDA__SOURCES
${tnl_solvers_linear_krylov_CUDA__SOURCES}
${tnl_solvers_linear_preconditioners_CUDA_SOURCES}
${tnl_solvers_linear_stationary_CUDA__SOURCES}
${common_SOURCES}
PARENT_SCOPE )
endif()
endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment