Kütüphane oluşturan bir projem var ve buna cuda desteği eklemek istiyorum.CMake: varolan projeye nasıl eklenir
yapısı şöyledir:
| basedir
|
_subdir1 | _subdir2
CMakeLists.txt dosyalarının temel yapısı: (subdir2 önemli değildir). Basedir içinde
:
cmake_minimum_required(VERSION 2.6)
PROJECT(myproject)
find_package(CUDA)
INCLUDE_DIRECTORIES(${MYPROJECT_SOURCE_DIR})
ADD_SUBDIRECTORY(subdir1)
ADD_SUBDIRECTORY(subdir2)
AltDiz1:
ADD_LIBRARY(mylib shared
file1.cpp
file2.cpp
file3.cpp
)
INSTALL(
TARGETS mylib
DESTINATION lib
PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
)
FILE(GLOB_RECURSE HEADERS RELATIVE ${MYPROJECT_SOURCE_DIR}/myproject *.h)
FOREACH(HEADER ${HEADERS})
STRING(REGEX MATCH "(.*)[/\\]" DIR ${HEADER})
INSTALL(FILES ${HEADER} DESTINATION include/myproject/${DIR})
ENDFOREACH(HEADER)
Aslında gerçekten içine cuda-destek koymak nasıl bilmiyorum. File2.cp dosyasını file2.cu ile değiştirmek istiyorum ve bunu yaptım, ancak .cu dosyasını, sadece cpp dosyalarını oluşturmadı.
Cuda dosyalarını eklemek için CUDA_ADD_EXECUTABLE() eklemek zorunda mıyım? Bunu diğer dosyalara nasıl bağlarım?
ben AltDiz1 CMakeLists.txt için aşağıdaki ekleyerek çalıştı: dosyayı derlemek ama bir çalıştırılabilir cuda inşa edecekCUDA_ADD_EXECUTABLE(cuda file2.cu OPTIONS -arch sm_20)
. Bunu mylib'e nasıl bağlarım? Sadece ile ?:
TARGET_LINK_LIBRARIES(cuda mylib)
Ben cmake deneyimli değilim itiraf etmeliyim, ama ben bunu anladım sanırım.
Bu kolay çözüm için teşekkürler! Mükemmel çalışıyor. – nanosto