From 9358f8eb430f4e7c42f2ae05c72d4be5642c993c Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Wed, 6 Aug 2025 09:19:07 +0000 Subject: [PATCH 01/12] fixed install include dirs --- CMakeLists.txt | 12 ------------ cmake/ta_core_config.cmake | 24 +++++++++++++++++++----- cmake/ta_interp_config.cmake | 24 +++++++++++++++++++----- cmake/ta_layers_config.cmake | 22 ++++++++++++++++++---- 4 files changed, 56 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ccf9fc..c698055 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,18 +5,6 @@ project(TensorArray C CXX) include(GNUInstallDirs) # set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}) -file( - GLOB_RECURSE TensorArray_inc - "${PROJECT_SOURCE_DIR}/src/*.h" - "${PROJECT_SOURCE_DIR}/src/*.hh" -) - -install( - FILES ${TensorArray_inc} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT headers -) - include(cmake/ta_core_config.cmake) include(cmake/ta_layers_config.cmake) include(cmake/ta_interp_config.cmake) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index f514b72..a80c922 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -1,10 +1,24 @@ +set(TensorArray_Core_Dir tensor-array/core) + +file( + GLOB TensorArray_Core_inc + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Core_Dir}/*.h" + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Core_Dir}/*.hh" +) + +install( + FILES ${TensorArray_Core_inc} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${TensorArray_Core_Dir}" + COMPONENT headers +) + include(CheckLanguage) check_language(CUDA) -file(GLOB TensorArray_Core_cc "${PROJECT_SOURCE_DIR}/src/tensor-array/core/*.cc") +file(GLOB TensorArray_Core_cc "${PROJECT_SOURCE_DIR}/src/${TensorArray_Core_Dir}/*.cc") if (CMAKE_CUDA_COMPILER) - file(GLOB TensorArray_Core_cu "${PROJECT_SOURCE_DIR}/src/tensor-array/core/*.cu") + file(GLOB TensorArray_Core_cu "${PROJECT_SOURCE_DIR}/src/${TensorArray_Core_Dir}/*.cu") endif() if(CMAKE_CUDA_COMPILER) @@ -43,11 +57,11 @@ set_property(TARGET tensorarray_core PROPERTY CXX_EXTENSIONS OFF) install( TARGETS tensorarray_core EXPORT TensorArrayTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/tensor-array + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/tensor-array/core + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Core_Dir}" COMPONENT Development ) diff --git a/cmake/ta_interp_config.cmake b/cmake/ta_interp_config.cmake index bcc62c8..96f7bbf 100644 --- a/cmake/ta_interp_config.cmake +++ b/cmake/ta_interp_config.cmake @@ -1,7 +1,21 @@ +set(TensorArray_Interpreter_Dir tensor-array/interp) + +file( + GLOB TensorArray_Interpreter_inc + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Interpreter_Dir}/*.h" + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Interpreter_Dir}/*.hh" +) + +install( + FILES ${TensorArray_Interpreter_inc} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${TensorArray_Interpreter_Dir}" + COMPONENT headers +) + file( GLOB TensorArray_Interpreter_src - "${PROJECT_SOURCE_DIR}/src/tensor-array/interp/*.c" - "${PROJECT_SOURCE_DIR}/src/tensor-array/interp/*.cc" + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Interpreter_Dir}/*.c" + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Interpreter_Dir}/*.cc" ) add_executable(tensorarray_interpreter ${TensorArray_Interpreter_src}) @@ -19,11 +33,11 @@ set_property(TARGET tensorarray_interpreter PROPERTY CXX_EXTENSIONS OFF) install( TARGETS tensorarray_interpreter EXPORT TensorArrayTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/tensor-array + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/tensor-array/interp + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Interpreter_Dir}" COMPONENT Development ) #[[ diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index d43b446..d8aa4b7 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -1,4 +1,18 @@ -file(GLOB TensorArray_Layers_src "${PROJECT_SOURCE_DIR}/src/tensor-array/layers/*.cc") +set(TensorArray_Layers_Dir tensor-array/layers) + +file( + GLOB TensorArray_Layers_inc + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Layers_Dir}/*.h" + "${PROJECT_SOURCE_DIR}/src/${TensorArray_Layers_Dir}/*.hh" +) + +install( + FILES ${TensorArray_Layers_inc} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${TensorArray_Layers_Dir}" + COMPONENT headers +) + +file(GLOB TensorArray_Layers_src "${PROJECT_SOURCE_DIR}/src/${TensorArray_Layers_Dir}/*.cc") add_library(tensorarray_layers SHARED ${TensorArray_Layers_src}) @@ -20,11 +34,11 @@ endif() install( TARGETS tensorarray_layers EXPORT TensorArrayTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/tensor-array + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/tensor-array/layers + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Layers_Dir}" COMPONENT Development ) From 9f5a22543db61f703f29f7865e6a3a504b67e1a6 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 04:22:59 +0000 Subject: [PATCH 02/12] add static libs --- cmake/ta_core_config.cmake | 36 +++++++++++++++++-- cmake/ta_interp_config.cmake | 4 +-- cmake/ta_layers_config.cmake | 29 +++++++++++++-- .../core/cmake/ta_core_tests.cmake | 2 +- 4 files changed, 64 insertions(+), 7 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index a80c922..c7c7778 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -25,12 +25,22 @@ if(CMAKE_CUDA_COMPILER) enable_language(CUDA) find_package(CUDAToolkit REQUIRED) add_library(tensorarray_core SHARED ${TensorArray_Core_cc} ${TensorArray_Core_cu}) + add_library(tensorarray_core_static STATIC ${TensorArray_Core_cc} ${TensorArray_Core_cu}) + set_property(TARGET tensorarray_core PROPERTY CUDA_STANDARD 17) set_property(TARGET tensorarray_core PROPERTY CUDA_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_core PROPERTY CUDA_EXTENSIONS OFF) set_property(TARGET tensorarray_core PROPERTY CUDA_SEPARABLE_COMPILATION ON) target_include_directories(tensorarray_core PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) target_link_libraries(tensorarray_core PRIVATE $<$:CUDA::cublas>) + + set_property(TARGET tensorarray_core_static PROPERTY CUDA_STANDARD 17) + set_property(TARGET tensorarray_core_static PROPERTY CUDA_STANDARD_REQUIRED ON) + set_property(TARGET tensorarray_core_static PROPERTY CUDA_EXTENSIONS OFF) + set_property(TARGET tensorarray_core_static PROPERTY CUDA_SEPARABLE_COMPILATION ON) + target_include_directories(tensorarray_core_static PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) + target_link_libraries(tensorarray_core_static PRIVATE $<$:CUDA::cublas>) + if(MSVC) target_compile_definitions(tensorarray_core PRIVATE TENSOR_ARRAY_CORE_EXPORTS) endif() @@ -40,7 +50,8 @@ if(CMAKE_CUDA_COMPILER) # set(CMAKE_CUDA_SEPARABLE_COMPILATION ON) # list(APPEND CMAKE_CUDA_FLAGS "--default-stream per-thread") else() - add_library(tensorarray_core SHARED ${TensorArray_Core_cc} ${TensorArray_Core_cu}) + add_library(tensorarray_core SHARED ${TensorArray_Core_cc}) + add_library(tensorarray_core_static STATIC ${TensorArray_Core_cc}) endif() @@ -54,6 +65,15 @@ set_property(TARGET tensorarray_core PROPERTY CXX_STANDARD 17) set_property(TARGET tensorarray_core PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_core PROPERTY CXX_EXTENSIONS OFF) + +set_property(TARGET tensorarray_core_static PROPERTY C_STANDARD 11) +set_property(TARGET tensorarray_core_static PROPERTY C_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_core_static PROPERTY C_EXTENSIONS OFF) + +set_property(TARGET tensorarray_core_static PROPERTY CXX_STANDARD 17) +set_property(TARGET tensorarray_core_static PROPERTY CXX_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_core_static PROPERTY CXX_EXTENSIONS OFF) + install( TARGETS tensorarray_core EXPORT TensorArrayTargets @@ -65,4 +85,16 @@ install( COMPONENT Development ) -add_library(TensorArray::Core ALIAS tensorarray_core) +install( + TARGETS tensorarray_core_static + EXPORT TensorArrayTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT Runtime + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" + COMPONENT Runtime + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Core_Dir}" + COMPONENT Development +) + +add_library(TensorArray::core ALIAS tensorarray_core) +add_library(TensorArray::core_static ALIAS tensorarray_core_static) diff --git a/cmake/ta_interp_config.cmake b/cmake/ta_interp_config.cmake index 96f7bbf..2415172 100644 --- a/cmake/ta_interp_config.cmake +++ b/cmake/ta_interp_config.cmake @@ -20,7 +20,7 @@ file( add_executable(tensorarray_interpreter ${TensorArray_Interpreter_src}) target_include_directories(tensorarray_interpreter PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_interpreter TensorArray::Core) +target_link_libraries(tensorarray_interpreter TensorArray::core) set_property(TARGET tensorarray_interpreter PROPERTY C_STANDARD 11) set_property(TARGET tensorarray_interpreter PROPERTY C_STANDARD_REQUIRED ON) @@ -47,4 +47,4 @@ install( POST_BUILD COMMAND tensorarray_interpreter) ]] -add_executable(TensorArray::Interpreter ALIAS tensorarray_interpreter) +add_executable(TensorArray::interpreter ALIAS tensorarray_interpreter) diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index d8aa4b7..0568a19 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -15,9 +15,13 @@ install( file(GLOB TensorArray_Layers_src "${PROJECT_SOURCE_DIR}/src/${TensorArray_Layers_Dir}/*.cc") add_library(tensorarray_layers SHARED ${TensorArray_Layers_src}) +add_library(tensorarray_layers_static STATIC ${TensorArray_Layers_src}) target_include_directories(tensorarray_layers PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_layers TensorArray::Core) +target_include_directories(tensorarray_layers_static PRIVATE ${PROJECT_SOURCE_DIR}/src) + +target_link_libraries(tensorarray_layers TensorArray::core) +target_link_libraries(tensorarray_layers_static TensorArray::core_static) set_property(TARGET tensorarray_layers PROPERTY C_STANDARD 11) set_property(TARGET tensorarray_layers PROPERTY C_STANDARD_REQUIRED ON) @@ -27,6 +31,15 @@ set_property(TARGET tensorarray_layers PROPERTY CXX_STANDARD 17) set_property(TARGET tensorarray_layers PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_layers PROPERTY CXX_EXTENSIONS OFF) + +set_property(TARGET tensorarray_layers_static PROPERTY C_STANDARD 11) +set_property(TARGET tensorarray_layers_static PROPERTY C_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_layers_static PROPERTY C_EXTENSIONS OFF) + +set_property(TARGET tensorarray_layers_static PROPERTY CXX_STANDARD 17) +set_property(TARGET tensorarray_layers_static PROPERTY CXX_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_layers_static PROPERTY CXX_EXTENSIONS OFF) + if(MSVC) target_compile_definitions(tensorarray_layers PRIVATE TENSOR_ARRAY_LAYERS_EXPORTS) endif() @@ -42,4 +55,16 @@ install( COMPONENT Development ) -add_library(TensorArray::Layers ALIAS tensorarray_layers) +install( + TARGETS tensorarray_layers_static + EXPORT TensorArrayTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT Runtime + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" + COMPONENT Runtime + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Layers_Dir}" + COMPONENT Development +) + +add_library(TensorArray::layers ALIAS tensorarray_layers) +add_library(TensorArray::layers_static ALIAS tensorarray_layers_static) diff --git a/tests/tensor-array/core/cmake/ta_core_tests.cmake b/tests/tensor-array/core/cmake/ta_core_tests.cmake index c5c2914..781e00d 100644 --- a/tests/tensor-array/core/cmake/ta_core_tests.cmake +++ b/tests/tensor-array/core/cmake/ta_core_tests.cmake @@ -17,7 +17,7 @@ create_test_sourcelist( add_executable(tensorarray_core_tests ${TensorArray_tests}) target_include_directories(tensorarray_core_tests PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_core_tests TensorArray::Core) +target_link_libraries(tensorarray_core_tests TensorArray::core) foreach(test ${TensorArray_tests_src}) get_filename_component(TName ${test} NAME_WE) From d50d5e3cd98a762ff2531a0d4c0f773479ef792b Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 04:42:39 +0000 Subject: [PATCH 03/12] add obj to cmake --- cmake/ta_core_config.cmake | 53 +++++++++++++----------------------- cmake/ta_layers_config.cmake | 38 ++++++++++---------------- 2 files changed, 34 insertions(+), 57 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index c7c7778..0a3990b 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -24,25 +24,15 @@ endif() if(CMAKE_CUDA_COMPILER) enable_language(CUDA) find_package(CUDAToolkit REQUIRED) - add_library(tensorarray_core SHARED ${TensorArray_Core_cc} ${TensorArray_Core_cu}) - add_library(tensorarray_core_static STATIC ${TensorArray_Core_cc} ${TensorArray_Core_cu}) - - set_property(TARGET tensorarray_core PROPERTY CUDA_STANDARD 17) - set_property(TARGET tensorarray_core PROPERTY CUDA_STANDARD_REQUIRED ON) - set_property(TARGET tensorarray_core PROPERTY CUDA_EXTENSIONS OFF) - set_property(TARGET tensorarray_core PROPERTY CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(tensorarray_core PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) - target_link_libraries(tensorarray_core PRIVATE $<$:CUDA::cublas>) - - set_property(TARGET tensorarray_core_static PROPERTY CUDA_STANDARD 17) - set_property(TARGET tensorarray_core_static PROPERTY CUDA_STANDARD_REQUIRED ON) - set_property(TARGET tensorarray_core_static PROPERTY CUDA_EXTENSIONS OFF) - set_property(TARGET tensorarray_core_static PROPERTY CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(tensorarray_core_static PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) - target_link_libraries(tensorarray_core_static PRIVATE $<$:CUDA::cublas>) - + add_library(tensorarray_core_object OBJECT ${TensorArray_Core_cc} ${TensorArray_Core_cu}) + set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD 17) + set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD_REQUIRED ON) + set_property(TARGET tensorarray_core_object PROPERTY CUDA_EXTENSIONS OFF) + set_property(TARGET tensorarray_core_object PROPERTY CUDA_SEPARABLE_COMPILATION ON) + target_include_directories(tensorarray_core_object PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) + target_link_libraries(tensorarray_core_object PRIVATE $<$:CUDA::cublas>) if(MSVC) - target_compile_definitions(tensorarray_core PRIVATE TENSOR_ARRAY_CORE_EXPORTS) + target_compile_definitions(tensorarray_core_object PRIVATE TENSOR_ARRAY_CORE_EXPORTS) endif() # find_package(CUDAToolkit REQUIRED) @@ -50,29 +40,23 @@ if(CMAKE_CUDA_COMPILER) # set(CMAKE_CUDA_SEPARABLE_COMPILATION ON) # list(APPEND CMAKE_CUDA_FLAGS "--default-stream per-thread") else() - add_library(tensorarray_core SHARED ${TensorArray_Core_cc}) - add_library(tensorarray_core_static STATIC ${TensorArray_Core_cc}) + add_library(tensorarray_core_object OBJECT ${TensorArray_Core_cc}) endif() # file(MAKE_DIRECTORY "include/tensor_array/core") -set_property(TARGET tensorarray_core PROPERTY C_STANDARD 11) -set_property(TARGET tensorarray_core PROPERTY C_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_core PROPERTY C_EXTENSIONS OFF) - -set_property(TARGET tensorarray_core PROPERTY CXX_STANDARD 17) -set_property(TARGET tensorarray_core PROPERTY CXX_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_core PROPERTY CXX_EXTENSIONS OFF) - +set_property(TARGET tensorarray_core_object PROPERTY C_STANDARD 11) +set_property(TARGET tensorarray_core_object PROPERTY C_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_core_object PROPERTY C_EXTENSIONS OFF) -set_property(TARGET tensorarray_core_static PROPERTY C_STANDARD 11) -set_property(TARGET tensorarray_core_static PROPERTY C_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_core_static PROPERTY C_EXTENSIONS OFF) +set_property(TARGET tensorarray_core_object PROPERTY CXX_STANDARD 17) +set_property(TARGET tensorarray_core_object PROPERTY CXX_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_core_object PROPERTY CXX_EXTENSIONS OFF) -set_property(TARGET tensorarray_core_static PROPERTY CXX_STANDARD 17) -set_property(TARGET tensorarray_core_static PROPERTY CXX_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_core_static PROPERTY CXX_EXTENSIONS OFF) +# shared and static libraries built from the same object files +add_library(tensorarray_core SHARED $) +add_library(tensorarray_core_static STATIC $) install( TARGETS tensorarray_core @@ -98,3 +82,4 @@ install( add_library(TensorArray::core ALIAS tensorarray_core) add_library(TensorArray::core_static ALIAS tensorarray_core_static) +add_library(TensorArray::core_object ALIAS tensorarray_core_object) diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index 0568a19..cec4a90 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -14,36 +14,27 @@ install( file(GLOB TensorArray_Layers_src "${PROJECT_SOURCE_DIR}/src/${TensorArray_Layers_Dir}/*.cc") -add_library(tensorarray_layers SHARED ${TensorArray_Layers_src}) -add_library(tensorarray_layers_static STATIC ${TensorArray_Layers_src}) +add_library(tensorarray_layers_object OBJECT ${TensorArray_Layers_src}) -target_include_directories(tensorarray_layers PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_include_directories(tensorarray_layers_static PRIVATE ${PROJECT_SOURCE_DIR}/src) +target_include_directories(tensorarray_layers_object PRIVATE ${PROJECT_SOURCE_DIR}/src) +target_link_libraries(tensorarray_layers_object TensorArray::core_object) -target_link_libraries(tensorarray_layers TensorArray::core) -target_link_libraries(tensorarray_layers_static TensorArray::core_static) +set_property(TARGET tensorarray_layers_object PROPERTY C_STANDARD 11) +set_property(TARGET tensorarray_layers_object PROPERTY C_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_layers_object PROPERTY C_EXTENSIONS OFF) -set_property(TARGET tensorarray_layers PROPERTY C_STANDARD 11) -set_property(TARGET tensorarray_layers PROPERTY C_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_layers PROPERTY C_EXTENSIONS OFF) - -set_property(TARGET tensorarray_layers PROPERTY CXX_STANDARD 17) -set_property(TARGET tensorarray_layers PROPERTY CXX_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_layers PROPERTY CXX_EXTENSIONS OFF) - - -set_property(TARGET tensorarray_layers_static PROPERTY C_STANDARD 11) -set_property(TARGET tensorarray_layers_static PROPERTY C_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_layers_static PROPERTY C_EXTENSIONS OFF) - -set_property(TARGET tensorarray_layers_static PROPERTY CXX_STANDARD 17) -set_property(TARGET tensorarray_layers_static PROPERTY CXX_STANDARD_REQUIRED ON) -set_property(TARGET tensorarray_layers_static PROPERTY CXX_EXTENSIONS OFF) +set_property(TARGET tensorarray_layers_object PROPERTY CXX_STANDARD 17) +set_property(TARGET tensorarray_layers_object PROPERTY CXX_STANDARD_REQUIRED ON) +set_property(TARGET tensorarray_layers_object PROPERTY CXX_EXTENSIONS OFF) if(MSVC) - target_compile_definitions(tensorarray_layers PRIVATE TENSOR_ARRAY_LAYERS_EXPORTS) + target_compile_definitions(tensorarray_layers_object PRIVATE TENSOR_ARRAY_LAYERS_EXPORTS) endif() +# shared and static libraries built from the same object files +add_library(tensorarray_layers SHARED $) +add_library(tensorarray_layers_static STATIC $) + install( TARGETS tensorarray_layers EXPORT TensorArrayTargets @@ -68,3 +59,4 @@ install( add_library(TensorArray::layers ALIAS tensorarray_layers) add_library(TensorArray::layers_static ALIAS tensorarray_layers_static) +add_library(TensorArray::layers_object ALIAS tensorarray_layers_object) From b41741a3e4b761d9f4e0b2175cc1d49a2ba3b045 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 04:50:22 +0000 Subject: [PATCH 04/12] set properties: "POSITION_INDEPENDENT_CODE" to 1 in cmake files --- cmake/ta_core_config.cmake | 4 +++- cmake/ta_layers_config.cmake | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index 0a3990b..dd45acd 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -43,7 +43,6 @@ else() add_library(tensorarray_core_object OBJECT ${TensorArray_Core_cc}) endif() - # file(MAKE_DIRECTORY "include/tensor_array/core") set_property(TARGET tensorarray_core_object PROPERTY C_STANDARD 11) @@ -54,6 +53,9 @@ set_property(TARGET tensorarray_core_object PROPERTY CXX_STANDARD 17) set_property(TARGET tensorarray_core_object PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_core_object PROPERTY CXX_EXTENSIONS OFF) +# shared libraries need PIC +set_property(TARGET tensorarray_core_object PROPERTY POSITION_INDEPENDENT_CODE 1) + # shared and static libraries built from the same object files add_library(tensorarray_core SHARED $) add_library(tensorarray_core_static STATIC $) diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index cec4a90..d36e333 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -27,6 +27,9 @@ set_property(TARGET tensorarray_layers_object PROPERTY CXX_STANDARD 17) set_property(TARGET tensorarray_layers_object PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_layers_object PROPERTY CXX_EXTENSIONS OFF) +# shared libraries need PIC +set_property(TARGET tensorarray_layers_object PROPERTY POSITION_INDEPENDENT_CODE 1) + if(MSVC) target_compile_definitions(tensorarray_layers_object PRIVATE TENSOR_ARRAY_LAYERS_EXPORTS) endif() From f5560abf72a83e88aa97f143d77cc81962954379 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 05:20:47 +0000 Subject: [PATCH 05/12] test --- cmake/ta_core_config.cmake | 4 ++-- cmake/ta_interp_config.cmake | 2 +- cmake/ta_layers_config.cmake | 2 +- tests/tensor-array/core/cmake/ta_core_tests.cmake | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index dd45acd..2648396 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -29,8 +29,8 @@ if(CMAKE_CUDA_COMPILER) set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_core_object PROPERTY CUDA_EXTENSIONS OFF) set_property(TARGET tensorarray_core_object PROPERTY CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(tensorarray_core_object PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) - target_link_libraries(tensorarray_core_object PRIVATE $<$:CUDA::cublas>) + target_include_directories(tensorarray_core_object PUBLIC $<$:${CUDAToolkit_INCLUDE_DIRS}>) + target_link_libraries(tensorarray_core_object LINK_PUBLIC $<$:CUDA::cublas>) if(MSVC) target_compile_definitions(tensorarray_core_object PRIVATE TENSOR_ARRAY_CORE_EXPORTS) endif() diff --git a/cmake/ta_interp_config.cmake b/cmake/ta_interp_config.cmake index 2415172..88b5741 100644 --- a/cmake/ta_interp_config.cmake +++ b/cmake/ta_interp_config.cmake @@ -20,7 +20,7 @@ file( add_executable(tensorarray_interpreter ${TensorArray_Interpreter_src}) target_include_directories(tensorarray_interpreter PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_interpreter TensorArray::core) +target_link_libraries(tensorarray_interpreter LINK_PUBLIC TensorArray::core) set_property(TARGET tensorarray_interpreter PROPERTY C_STANDARD 11) set_property(TARGET tensorarray_interpreter PROPERTY C_STANDARD_REQUIRED ON) diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index d36e333..f571871 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -17,7 +17,7 @@ file(GLOB TensorArray_Layers_src "${PROJECT_SOURCE_DIR}/src/${TensorArray_Layers add_library(tensorarray_layers_object OBJECT ${TensorArray_Layers_src}) target_include_directories(tensorarray_layers_object PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_layers_object TensorArray::core_object) +target_link_libraries(tensorarray_layers_object PUBLIC TensorArray::core_object) set_property(TARGET tensorarray_layers_object PROPERTY C_STANDARD 11) set_property(TARGET tensorarray_layers_object PROPERTY C_STANDARD_REQUIRED ON) diff --git a/tests/tensor-array/core/cmake/ta_core_tests.cmake b/tests/tensor-array/core/cmake/ta_core_tests.cmake index 781e00d..71e583e 100644 --- a/tests/tensor-array/core/cmake/ta_core_tests.cmake +++ b/tests/tensor-array/core/cmake/ta_core_tests.cmake @@ -17,7 +17,7 @@ create_test_sourcelist( add_executable(tensorarray_core_tests ${TensorArray_tests}) target_include_directories(tensorarray_core_tests PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_core_tests TensorArray::core) +target_link_libraries(tensorarray_core_tests LINK_PUBLIC TensorArray::core) foreach(test ${TensorArray_tests_src}) get_filename_component(TName ${test} NAME_WE) From 807024e1ccf23839262fe2b610a5a79363700f8f Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 05:30:55 +0000 Subject: [PATCH 06/12] test 1 --- cmake/ta_core_config.cmake | 8 ++++++-- cmake/ta_interp_config.cmake | 2 +- cmake/ta_layers_config.cmake | 4 +++- tests/tensor-array/core/cmake/ta_core_tests.cmake | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index 2648396..fd72f5e 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -29,8 +29,7 @@ if(CMAKE_CUDA_COMPILER) set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_core_object PROPERTY CUDA_EXTENSIONS OFF) set_property(TARGET tensorarray_core_object PROPERTY CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(tensorarray_core_object PUBLIC $<$:${CUDAToolkit_INCLUDE_DIRS}>) - target_link_libraries(tensorarray_core_object LINK_PUBLIC $<$:CUDA::cublas>) + target_include_directories(tensorarray_core_object PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) if(MSVC) target_compile_definitions(tensorarray_core_object PRIVATE TENSOR_ARRAY_CORE_EXPORTS) endif() @@ -60,6 +59,11 @@ set_property(TARGET tensorarray_core_object PROPERTY POSITION_INDEPENDENT_CODE 1 add_library(tensorarray_core SHARED $) add_library(tensorarray_core_static STATIC $) +if(CUDAToolkit_FOUND) + target_link_libraries(tensorarray_core PRIVATE $<$:CUDA::cublas>) + target_link_libraries(tensorarray_core_static PRIVATE $<$:CUDA::cublas>) +endif() + install( TARGETS tensorarray_core EXPORT TensorArrayTargets diff --git a/cmake/ta_interp_config.cmake b/cmake/ta_interp_config.cmake index 88b5741..85b4bfd 100644 --- a/cmake/ta_interp_config.cmake +++ b/cmake/ta_interp_config.cmake @@ -20,7 +20,7 @@ file( add_executable(tensorarray_interpreter ${TensorArray_Interpreter_src}) target_include_directories(tensorarray_interpreter PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_interpreter LINK_PUBLIC TensorArray::core) +target_link_libraries(tensorarray_interpreter PUBLIC TensorArray::core) set_property(TARGET tensorarray_interpreter PROPERTY C_STANDARD 11) set_property(TARGET tensorarray_interpreter PROPERTY C_STANDARD_REQUIRED ON) diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index f571871..8e5e7ff 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -17,7 +17,6 @@ file(GLOB TensorArray_Layers_src "${PROJECT_SOURCE_DIR}/src/${TensorArray_Layers add_library(tensorarray_layers_object OBJECT ${TensorArray_Layers_src}) target_include_directories(tensorarray_layers_object PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_layers_object PUBLIC TensorArray::core_object) set_property(TARGET tensorarray_layers_object PROPERTY C_STANDARD 11) set_property(TARGET tensorarray_layers_object PROPERTY C_STANDARD_REQUIRED ON) @@ -38,6 +37,9 @@ endif() add_library(tensorarray_layers SHARED $) add_library(tensorarray_layers_static STATIC $) +target_link_libraries(tensorarray_layers PUBLIC TensorArray::core) +target_link_libraries(tensorarray_layers_static PUBLIC TensorArray::core_static) + install( TARGETS tensorarray_layers EXPORT TensorArrayTargets diff --git a/tests/tensor-array/core/cmake/ta_core_tests.cmake b/tests/tensor-array/core/cmake/ta_core_tests.cmake index 71e583e..da6401d 100644 --- a/tests/tensor-array/core/cmake/ta_core_tests.cmake +++ b/tests/tensor-array/core/cmake/ta_core_tests.cmake @@ -17,7 +17,7 @@ create_test_sourcelist( add_executable(tensorarray_core_tests ${TensorArray_tests}) target_include_directories(tensorarray_core_tests PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(tensorarray_core_tests LINK_PUBLIC TensorArray::core) +target_link_libraries(tensorarray_core_tests PUBLIC TensorArray::core) foreach(test ${TensorArray_tests_src}) get_filename_component(TName ${test} NAME_WE) From 4775f7b418ddbdde7fd9756cae2fa1f7220ac1a4 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 05:48:50 +0000 Subject: [PATCH 07/12] move "CUDA_SEPARABLE_COMPILATION" --- cmake/ta_core_config.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index fd72f5e..96727c2 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -28,7 +28,6 @@ if(CMAKE_CUDA_COMPILER) set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD 17) set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_core_object PROPERTY CUDA_EXTENSIONS OFF) - set_property(TARGET tensorarray_core_object PROPERTY CUDA_SEPARABLE_COMPILATION ON) target_include_directories(tensorarray_core_object PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) if(MSVC) target_compile_definitions(tensorarray_core_object PRIVATE TENSOR_ARRAY_CORE_EXPORTS) @@ -60,6 +59,7 @@ add_library(tensorarray_core SHARED $) add_library(tensorarray_core_static STATIC $) if(CUDAToolkit_FOUND) + set_property(TARGET tensorarray_core PROPERTY CUDA_SEPARABLE_COMPILATION ON) target_link_libraries(tensorarray_core PRIVATE $<$:CUDA::cublas>) target_link_libraries(tensorarray_core_static PRIVATE $<$:CUDA::cublas>) endif() From f97f3f386e7919b4fba8b8fb47d139fc0101c253 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 05:57:15 +0000 Subject: [PATCH 08/12] try to link lib --- cmake/ta_core_config.cmake | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index 96727c2..d584600 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -28,6 +28,7 @@ if(CMAKE_CUDA_COMPILER) set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD 17) set_property(TARGET tensorarray_core_object PROPERTY CUDA_STANDARD_REQUIRED ON) set_property(TARGET tensorarray_core_object PROPERTY CUDA_EXTENSIONS OFF) + set_property(TARGET tensorarray_core_object PROPERTY CUDA_SEPARABLE_COMPILATION ON) target_include_directories(tensorarray_core_object PRIVATE $<$:${CUDAToolkit_INCLUDE_DIRS}>) if(MSVC) target_compile_definitions(tensorarray_core_object PRIVATE TENSOR_ARRAY_CORE_EXPORTS) @@ -59,9 +60,16 @@ add_library(tensorarray_core SHARED $) add_library(tensorarray_core_static STATIC $) if(CUDAToolkit_FOUND) - set_property(TARGET tensorarray_core PROPERTY CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(tensorarray_core PRIVATE $<$:CUDA::cublas>) - target_link_libraries(tensorarray_core_static PRIVATE $<$:CUDA::cublas>) + target_link_libraries( + tensorarray_core + PRIVATE $<$:CUDA::cudart> + PRIVATE $<$:CUDA::cublas> + ) + target_link_libraries( + tensorarray_core_static + PRIVATE $<$:CUDA::cudart_static> + PRIVATE $<$:CUDA::cublas_static> + ) endif() install( From bb5146a040ca8bf57319d87c38fea33394cf15a4 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 06:27:03 +0000 Subject: [PATCH 09/12] test --- cmake/ta_core_config.cmake | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index d584600..a2e9e19 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -60,14 +60,13 @@ add_library(tensorarray_core SHARED $) add_library(tensorarray_core_static STATIC $) if(CUDAToolkit_FOUND) + set_property(TARGET tensorarray_core PROPERTY CUDA_SEPARABLE_COMPILATION ON) target_link_libraries( tensorarray_core - PRIVATE $<$:CUDA::cudart> PRIVATE $<$:CUDA::cublas> ) target_link_libraries( tensorarray_core_static - PRIVATE $<$:CUDA::cudart_static> PRIVATE $<$:CUDA::cublas_static> ) endif() From 54e72eba45669fcd994ce9ea2102edcb6cea7402 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 06:32:18 +0000 Subject: [PATCH 10/12] update static lib path --- cmake/ta_core_config.cmake | 4 ++-- cmake/ta_interp_config.cmake | 2 +- cmake/ta_layers_config.cmake | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index a2e9e19..2a1415b 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -78,7 +78,7 @@ install( COMPONENT Runtime LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Core_Dir}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Development ) @@ -89,7 +89,7 @@ install( COMPONENT Runtime LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Core_Dir}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Development ) diff --git a/cmake/ta_interp_config.cmake b/cmake/ta_interp_config.cmake index 85b4bfd..9f43e0d 100644 --- a/cmake/ta_interp_config.cmake +++ b/cmake/ta_interp_config.cmake @@ -37,7 +37,7 @@ install( COMPONENT Runtime LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Interpreter_Dir}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Development ) #[[ diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index 8e5e7ff..bad535b 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -47,7 +47,7 @@ install( COMPONENT Runtime LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Layers_Dir}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Development ) @@ -58,7 +58,7 @@ install( COMPONENT Runtime LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Runtime - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${TensorArray_Layers_Dir}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/tensor-array" COMPONENT Development ) From a0b43416be1230ed862513c62659180cb7768a38 Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 06:41:37 +0000 Subject: [PATCH 11/12] test 2 --- cmake/ta_core_config.cmake | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmake/ta_core_config.cmake b/cmake/ta_core_config.cmake index 2a1415b..e1a2c2a 100644 --- a/cmake/ta_core_config.cmake +++ b/cmake/ta_core_config.cmake @@ -65,10 +65,6 @@ if(CUDAToolkit_FOUND) tensorarray_core PRIVATE $<$:CUDA::cublas> ) - target_link_libraries( - tensorarray_core_static - PRIVATE $<$:CUDA::cublas_static> - ) endif() install( From bdae3242982320104ca720599b4f6e0d1b24addf Mon Sep 17 00:00:00 2001 From: Noob <63889503+BigNoobWasTaken@users.noreply.github.com> Date: Fri, 8 Aug 2025 06:42:29 +0000 Subject: [PATCH 12/12] test 3 --- cmake/ta_layers_config.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake/ta_layers_config.cmake b/cmake/ta_layers_config.cmake index bad535b..d0961a9 100644 --- a/cmake/ta_layers_config.cmake +++ b/cmake/ta_layers_config.cmake @@ -38,7 +38,6 @@ add_library(tensorarray_layers SHARED $) target_link_libraries(tensorarray_layers PUBLIC TensorArray::core) -target_link_libraries(tensorarray_layers_static PUBLIC TensorArray::core_static) install( TARGETS tensorarray_layers