summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt53
1 files changed, 45 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a4ab4ee..cd9516e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@ set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries")
find_package(OpenGL REQUIRED)
find_package(CUDA)
-add_executable(${PROJECT_NAME} main.cpp point.h Canvas/Canvas.h)
+add_executable(${PROJECT_NAME} main.cpp)
# GLFW
find_package(PkgConfig REQUIRED)
@@ -16,6 +16,7 @@ pkg_search_module(GLFW REQUIRED glfw3)
include_directories(${GLFW_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${GLFW_STATIC_LIBRARIES})
+
# GLAD
set(GLAD_DIR "${LIB_DIR}/glad")
set(GLAD_NAME "glad")
@@ -24,16 +25,52 @@ target_include_directories(${GLAD_NAME} PRIVATE "${GLAD_DIR}/include")
target_include_directories(${PROJECT_NAME} PRIVATE "${GLAD_DIR}/include")
target_link_libraries(${PROJECT_NAME} ${GLAD_NAME} "${CMAKE_DL_LIBS}")
+
# stb_image
target_include_directories(${PROJECT_NAME} PRIVATE "${LIB_DIR}/stb_image")
+
# shader
target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/learnopengl")
-# CUDA
-set(CUDA_LIB "cudalib")
-#target_include_directories(${PROJECT_NAME} PRIVATE "Canvas/")
-cuda_add_library(${CUDA_LIB} STATIC Canvas/cuda/CalculateCanvasGPU.cu Canvas/cuda/CalculateCanvasGPU.h OPTIONS -std=c++11)
-target_compile_features(${CUDA_LIB} PUBLIC cxx_std_11)
-set_target_properties(${CUDA_LIB} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
-target_link_libraries(${PROJECT_NAME} ${CUDA_LIB})
+
+# Point
+set(POINT_LIB "point_lib")
+set(POINT_DIR "${LIB_DIR}/point")
+add_library(${POINT_LIB} "${POINT_DIR}/Point.cpp")
+target_link_libraries(${PROJECT_NAME} ${POINT_LIB})
+target_include_directories(${PROJECT_NAME} PRIVATE ${POINT_DIR})
+
+
+# Canvas
+set(CANVAS_LIB "canvas_lib")
+add_library(${CANVAS_LIB} Canvas/Canvas.cpp Canvas/Canvas.h)
+
+target_include_directories(${CANVAS_LIB} PRIVATE ${POINT_DIR})
+target_include_directories(${CANVAS_LIB} PRIVATE "${GLAD_DIR}/include")
+target_include_directories(${CANVAS_LIB} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/learnopengl")
+
+target_link_libraries(${PROJECT_NAME} ${CANVAS_LIB})
+target_include_directories(${PROJECT_NAME} PRIVATE "Canvas/")
+
+
+if(${CUDA_FOUND})
+ set(GENERATE_CANVAS_LIB "generate_canvas_lib_cuda")
+
+ cuda_add_library(${GENERATE_CANVAS_LIB} STATIC Canvas/gpu/CalculateCanvas.cu Canvas/gpu/CalculateCanvas.h)
+ target_compile_features(${GENERATE_CANVAS_LIB} PUBLIC cxx_std_11)
+ set_target_properties(${GENERATE_CANVAS_LIB} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
+
+ target_include_directories(${CANVAS_LIB} PRIVATE "Canvas/gpu")
+else()
+ set(GENERATE_CANVAS_LIB "generate_canvas_lib")
+
+ add_library(${GENERATE_CANVAS_LIB} Canvas/cpu/CalculateCanvas.cpp Canvas/cpu/CalculateCanvas.h)
+ target_compile_features(${GENERATE_CANVAS_LIB} PUBLIC cxx_std_11)
+
+ target_include_directories(${CANVAS_LIB} PRIVATE "Canvas/cpu")
+endif()
+
+target_include_directories(${GENERATE_CANVAS_LIB} PRIVATE ${POINT_DIR})
+
+target_link_libraries(${CANVAS_LIB} ${GENERATE_CANVAS_LIB})