trying TEMPLATE C

This commit is contained in:
2023-07-16 00:15:15 +02:00
commit 8e529cb426
40 changed files with 4302 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
#cmake_minimum_required(VERSION 3.2)
cmake_minimum_required(VERSION 3.18)
project(ptens0neD)
include(FetchContent)
FetchContent_Declare(googletest
GIT_REPOSITORY https://github.com/google/googletest
GIT_TAG release-1.12.1
)
FetchContent_GetProperties(googletest)
if(NOT googletest_POPULATED)
FetchContent_Populate(googletest)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BUILD_DIR})
endif()
#add_library(add STATIC add.cu)
add_library(permutation STATIC src/permutation/permutation.cpp)
add_library(dimension STATIC src/dimension/dimension.cpp)
add_library(tens0ne STATIC src/tens0ne/tens0ne.cpp)
add_library(cutens0ne STATIC src/cutens0ne/cutens0ne.cu)
add_library(d_cutens0ne STATIC src/cutens0ne/d_cutens0ne.cu)
#find_package(CUDA REQUIRED)
enable_language(CUDA)
#cuda_add_library(add STATIC add.cu)
#add_library(permutation STATIC ../permutation/permutation.cu)
#cuda_add_executable( )
add_executable(isgood isgood.cu device.cuh ../tensor/tensor.cpp ../permutation/permutation.cpp)
#cuda_add_executable(isgood isgood.cpp add.cu )
#target_link_libraries(isgood add gtest_main gmock_main pthread)
target_link_libraries(isgood gtest_main gmock_main pthread)
enable_testing()
add_test(Tester isgood)
+71
View File
@@ -0,0 +1,71 @@
#cmake_minimum_required(VERSION 3.20)
#cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.0.0)
set(F0_PROJECT_NAME projectF0)
set(F0_LIBRARIES
permutation
dimension
tens0neD
)
set(F0_CUDA_LIBRARIES
tensCuda
d_tensCuda
)
set(F0_SOURCE_DIR
src
)
project(${F0_PROJECT_NAME})
include(FetchContent)
FetchContent_Declare(googletest
GIT_REPOSITORY https://github.com/google/googletest
GIT_TAG release-1.12.1
)
FetchContent_GetProperties(googletest)
if(NOT googletest_POPULATED)
FetchContent_Populate(googletest)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BUILD_DIR})
endif()
#add_library(add STATIC add.cu)
foreach(libvarcu ${F0_CUDA_LIBRARIES})
list(APPEND F0_SOURCES_CU ${F0_SOURCE_DIR}/tensor/tensCuda/${libvarcu}.cu)
endforeach()
foreach(libvar ${F0_LIBRARIES})
if( ${libvar} STREQUAL "tens0neD" )
list(APPEND F0_SOURCES_CPP ${F0_SOURCE_DIR}/tensor/${libvar}/${libvar}.cpp)
else()
list(APPEND F0_SOURCES_CPP ${F0_SOURCE_DIR}/${libvar}/${libvar}.cpp)
endif()
endforeach()
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#find_package(CUDA REQUIRED) # no need
enable_language(CUDA)
#if version < 3.18
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
set(CMAKE_CUDA_ARCHITECTURES 75)
endif()
add_library(${F0_PROJECT_NAME} STATIC ${F0_SOURCES_CPP} ${F0_SOURCES_CU}) # no need if add sources in executable
add_executable(isgood test/isgood.cu) # if library set, no need of ${F0_SOURCES_CPP} ${F0_SOURCES_CU}) but if not you nedd to add theses files src
target_link_libraries(isgood gtest_main gmock_main pthread ${F0_PROJECT_NAME}) # no need if no local library set
enable_testing()
add_test(Tester isgood)
+37
View File
@@ -0,0 +1,37 @@
cmake_minimum_required(VERSION 3.0.0)
set(FOO_PROJECT_NAME
Foo
)
set(FOO_SOURCE_DIR
src
)
set(FOO_SOURCE
${FOO_SOURCE_DIR}/main.cpp
)
set(FOO_LIBRARIES_DIR
libs
)
set(FOO_LIBRARIES
A
B
)
project(${FOO_PROJECT_NAME})
#########
# GTest #
#########
enable_testing()
add_subdirectory(libs/gtest-1.7.0)
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
###########
# Project #
###########
add_executable(${FOO_PROJECT_NAME} ${FOO_SOURCE})
foreach(LIBRARY ${FOO_LIBRARIES})
add_subdirectory("${FOO_LIBRARIES_DIR}/${LIBRARY}")
endforeach(LIBRARY)
target_link_libraries(${FOO_PROJECT_NAME} ${FOO_LIBRARIES})
+80
View File
@@ -0,0 +1,80 @@
cmake_minimum_required(VERSION 3.18)
project(ptens0neD VERSION 2023.0
LANGUAGES CXX
HOMEPAGE_URL "https://github.com/fanasina/ptens0neD")
#####################################################################
# DEPENDENCIES
#####################################################################
find_package(Threads REQUIRED)
find_package(Boost REQUIRED)
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.10.0)
FetchContent_GetProperties(googletest)
if(NOT googletest_POPULATED)
FetchContent_Populate(googletest)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR}
EXCLUDE_FROM_ALL)
endif()
#####################################################################
# LIBRARY
#####################################################################
add_library(${PROJECT_NAME}
src/ptens0neD/implementation.cpp
)
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
set_target_properties(${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION})
target_include_directories(${PROJECT_NAME}
PUBLIC include
PRIVATE src)
target_link_libraries(${PROJECT_NAME}
PUBLIC Threads::Threads
PRIVATE Boost::boost)
target_compile_options(${PROJECT_NAME}
PRIVATE -Wall -Wextra -pedantic -Werror)
target_compile_features(${PROJECT_NAME}
PRIVATE cxx_std_17)
include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME}
EXPORT ptens0neDTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
#####################################################################
# UNIT TESTS
#####################################################################
add_executable(${PROJECT_NAME}-tests
test/test-myclass.cpp)
target_link_libraries(${PROJECT_NAME}-tests
PRIVATE gtest_main Threads::Threads ${PROJECT_NAME}::${PROJECT_NAME})
target_compile_options(${PROJECT_NAME}-tests
PRIVATE -Wall -Wextra -pedantic -Werror)
target_compile_features(${PROJECT_NAME}
PRIVATE cxx_std_17)
+10
View File
@@ -0,0 +1,10 @@
cmake_minimum_required(VERSION 3.20)
project(geometries LANGUAGES CXX)
add_executable(app)
target_sources(app PRIVATE "app.cpp")
target_include_directories(app PRIVATE "${PROJECT_SOURCE_DIR}")
add_subdirectory("shape")
add_subdirectory("square")
install(TARGETS app)