Skip to content

Instantly share code, notes, and snippets.

@jakeju92
Created March 23, 2020 06:06
Show Gist options
  • Save jakeju92/781c54515b742ae215438eae516d7f5c to your computer and use it in GitHub Desktop.
Save jakeju92/781c54515b742ae215438eae516d7f5c to your computer and use it in GitHub Desktop.
My CMakeLists template
# CMake version requirement
cmake_minimum_required(VERSION 3.8.0)
project(MY_PROJ VERSION 1.0.0 LANGUAGES CXX CUDA)
# find_package()
set(INCUDE_DIR "${PROJECT_SOURCE_DIR}/include")
set(LIBRARY_DIR "${PROJECT_SOURCE_DIR}/lib")
include_directories("${INCLUDE_DIR}")
link_directories("${LIBRARY_DIR}")
file(GLOB src src/*.cpp)
file(GLOB cuda_src src/cuda/*.h src/cuda/*.cpp src/cuda/*.cu)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_61,code=sm_61;)
cuda_add_library(cuda_lib SHARED "${cuda_src}")
target_link_libraries(cuda_lib "${CUDA_LIBRARIES}")
add_executable(MY_PROJ ${src})
set_property(TARGET MY_PROJ PROPERTY CXX_STANDARD 11)
set_property(TARGET MY_PROJ PROPERTY CUDA_SEPARABLE_COMPILATION ON)
# set_property(TARGET MY_PROJ PROPERTY CXX_STANDARD 14) # Set cpp standard to 14
target_link_libraries(MY_PROJ cuda_lib)
set(MVC_BIN_DIR "${PROJECT_SOURCE_DIR}/MVC/bin/")
add_custom_command(TARGET MY_PROJ POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory ${MVC_BIN_DIR} $<TARGET_FILE_DIR:MY_PROJ>
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment