Skip to content
Snippets Groups Projects
CMakeLists.txt 1.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • project(MemoryProcessing)
    cmake_minimum_required(VERSION 3.19)
    
    
    数学の武士's avatar
    .  
    数学の武士 committed
    option(INCLUDE_CUDA "GPU build in mode" OFF)
    
    数学の武士's avatar
    数学の武士 committed
    option(CXX23_STACKTRACE "Enable C++23 stacktrace" OFF)
    
    数学の武士's avatar
    数学の武士 committed
    
    enable_language(CXX)
    
    数学の武士's avatar
    数学の武士 committed
    if(CXX23_STACKTRACE)
        set(CMAKE_CXX_STANDARD 23)
    else(CXX23_STACKTRACE)
        set(CMAKE_CXX_STANDARD 11)
    endif(CXX23_STACKTRACE)
    
    数学の武士's avatar
    数学の武士 committed
    
    
    数学の武士's avatar
    .  
    数学の武士 committed
    message(STATUS "memory processing: GPU build in mode is ${INCLUDE_CUDA}")
    
    
    数学の武士's avatar
    数学の武士 committed
    if(INCLUDE_CUDA)
    
    数学の武士's avatar
    数学の武士 committed
        enable_language(CUDA)
        include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
    
    数学の武士's avatar
    数学の武士 committed
    
        # -DCMAKE_CUDA_ARCHITECTURES=native -- Compile for the architecture(s) of the host's GPU(s)
    endif(INCLUDE_CUDA)
    
    set(SOURCES_CXX 
        src/MemoryProcessing.cpp
        )
    
    数学の武士's avatar
    .  
    数学の武士 committed
    set(HEADERS_CXX 
        include/MemoryProcessing.h
    
    数学の武士's avatar
    .  
    数学の武士 committed
        include/TemplateParameters.h
    
    数学の武士's avatar
    .  
    数学の武士 committed
        )
    
    数学の武士's avatar
    数学の武士 committed
    if(INCLUDE_CUDA)
        set(SOURCES_CU 
        src/MemoryProcessing.cu
        )
    
    数学の武士's avatar
    .  
    数学の武士 committed
        set(HEADERS_CU
        include/MemoryProcessing.cuh
        )
    
    数学の武士's avatar
    数学の武士 committed
    endif(INCLUDE_CUDA)
    
    
    数学の武士's avatar
    .  
    数学の武士 committed
    set(SOURCES ${SOURCES_CU} ${SOURCES_CXX})
    set(HEADERS ${HEADERS_CU} ${HEADERS_CXX})
    
    
    数学の武士's avatar
    数学の武士 committed
    add_library(memproc STATIC ${HEADERS} ${SOURCES})
    if(CXX23_STACKTRACE)
        target_link_libraries(memproc PUBLIC -lstdc++_libbacktrace)
    endif(CXX23_STACKTRACE)