A tool for evaluating multiple NURBS curve/surface points using the GPU.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.5 KiB

2 years ago
cmake_minimum_required(VERSION 3.21)
project(NurbsEvaluator LANGUAGES CXX CUDA)
2 years ago
set(CMAKE_CUDA_STANDARD 14)
2 years ago
add_executable(NurbsEvaluator src/main.cpp
src/utils.cpp include/utils.h
src/device/Nurbs/nurbs_common.cu include/device/Nurbs/nurbs_common.cuh
src/device/device_utils.cu include/device/device_utils.cuh
src/device/Nurbs/nurbs_surface.cu include/device/Nurbs/nurbs_surface.cuh
src/device/Nurbs/nurbs_curve.cu include/device/Nurbs/nurbs_curve.cuh
src/device/aabb.cu include/device/aabb.cuh
src/device/vec.cu include/device/vec.cuh
src/device/Nurbs/bvh.cu include/device/Nurbs/bvh.cuh
)
2 years ago
#add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
#add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
2 years ago
# 指定静态库位置
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
#生成静态库
#add_library(NurbsEvaluator NurbsEvaluator.cu NurbsEvaluator.cuh utils.cpp utils.h)
2 years ago
# 引用系统环境变量CUDA_PATH
# linux
#include_directories("/usr/local/device-11.8/targets/x86_64-linux/include")
# windows
2 years ago
include_directories("$ENV{CUDA_PATH}/include")
#MESSAGE("CUDA PATH::: $ENV{CUDA_PATH}")
#MESSAGE("CUDA PATH::: $ENV{LD_LIBRARY_PATH}")
#MESSAGE("CUDA PATH::: $ENV{CPATH}")
set_target_properties(NurbsEvaluator PROPERTIES
2 years ago
CUDA_SEPARABLE_COMPILATION ON)
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
set(CMAKE_CUDA_ARCHITECTURES 70 75 80)
endif(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)