From 3bb43678d06d3b1c32816359c5600aa571154232 Mon Sep 17 00:00:00 2001 From: Angus Hollands Date: Mon, 13 Nov 2023 18:06:56 +0000 Subject: [PATCH] chore: only build _ext and kernels (#2813) * chore: remove object/static library targets We now export some more symbols to support this * fix: set RPATH * fix: delete copy constructor for FromJsonObjectSchema * wip: try deleting copy-assignment constructor too --- awkward-cpp/CMakeLists.txt | 51 +++++-------------- .../include/awkward/builder/ArrayBuilder.h | 50 +++++++++--------- .../include/awkward/builder/BoolBuilder.h | 2 +- awkward-cpp/include/awkward/builder/Builder.h | 2 +- .../awkward/builder/Complex128Builder.h | 2 +- .../include/awkward/builder/DatetimeBuilder.h | 2 +- .../include/awkward/builder/Float64Builder.h | 2 +- .../include/awkward/builder/Int64Builder.h | 2 +- .../include/awkward/builder/ListBuilder.h | 2 +- .../include/awkward/builder/OptionBuilder.h | 2 +- .../include/awkward/builder/RecordBuilder.h | 2 +- .../include/awkward/builder/StringBuilder.h | 2 +- .../include/awkward/builder/TupleBuilder.h | 2 +- .../include/awkward/builder/UnionBuilder.h | 2 +- .../include/awkward/builder/UnknownBuilder.h | 2 +- awkward-cpp/include/awkward/common.h | 6 +-- .../include/awkward/forth/ForthInputBuffer.h | 2 +- .../include/awkward/forth/ForthMachine.h | 2 +- .../include/awkward/forth/ForthOutputBuffer.h | 4 +- awkward-cpp/include/awkward/io/json.h | 10 +++- awkward-cpp/include/awkward/util.h | 8 +-- 21 files changed, 69 insertions(+), 90 deletions(-) diff --git a/awkward-cpp/CMakeLists.txt b/awkward-cpp/CMakeLists.txt index ac33dfb976..00e2668bda 100644 --- a/awkward-cpp/CMakeLists.txt +++ b/awkward-cpp/CMakeLists.txt @@ -25,15 +25,11 @@ Please check https://github.com/scikit-hep/awkward#installation-for-developers t endif() # Setup the RPATH for built libraries -if(CMAKE_SYSTEM_NAME STREQUAL Emscripten) - message(STATUS "Using Emscripten") - set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) - set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE) -elseif(APPLE) - set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE) +if(APPLE) set(CMAKE_INSTALL_RPATH "@loader_path") else() - set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE) + set(CMAKE_INSTALL_RPATH "\$ORIGIN") endif() # Three tiers: [cpu-kernels (extern "C" interface), cuda-kernels (extern "C" interface)], @@ -54,31 +50,21 @@ target_include_directories(awkward-parent INTERFACE rapidjson/include) add_subdirectory(header-only EXCLUDE_FROM_ALL) target_link_libraries(awkward-parent INTERFACE awkward::growable-buffer) -# First tier: cpu-kernels (object files, static library, and dynamic library). -add_library(awkward-cpu-kernels-objects OBJECT ${CPU_KERNEL_SOURCES}) -set_target_properties(awkward-cpu-kernels-objects PROPERTIES POSITION_INDEPENDENT_CODE ON) -target_link_libraries(awkward-cpu-kernels-objects PUBLIC awkward-parent) +# First tier: cpu-kernels +add_library(awkward-cpu-kernels SHARED ${CPU_KERNEL_SOURCES}) +target_link_libraries(awkward-cpu-kernels PUBLIC awkward-parent) set_target_properties( - awkward-cpu-kernels-objects + awkward-cpu-kernels PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON CXX_EXTENSIONS NO) -add_library(awkward-cpu-kernels-static STATIC $) -set_property(TARGET awkward-cpu-kernels-static PROPERTY POSITION_INDEPENDENT_CODE ON) -target_link_libraries(awkward-cpu-kernels-static PUBLIC awkward-parent) - -add_library(awkward-cpu-kernels SHARED $) -target_link_libraries(awkward-cpu-kernels PUBLIC awkward-parent) - -# Second tier: libawkward (object files, static library, and dynamic library). -add_library(awkward-objects OBJECT ${LIBAWKWARD_SOURCES}) -set_target_properties(awkward-objects PROPERTIES POSITION_INDEPENDENT_CODE 1) -target_compile_definitions(awkward-objects PRIVATE LIBAWKWARD_EXPORT_SYMBOL=EXPORT_SYMBOL) +# Second tier: libawkward +add_library(awkward SHARED ${LIBAWKWARD_SOURCES}) if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") # Avoid emitting vtables in the dependent libraries target_compile_options( - awkward-objects + awkward PRIVATE -Werror=weak-vtables -Wweak-vtables -Wshorten-64-to-32 @@ -90,30 +76,21 @@ if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") -Wconversion -Wunused) endif() -target_link_libraries(awkward-objects PUBLIC awkward-parent) +target_link_libraries(awkward PUBLIC awkward-parent) set_target_properties( - awkward-objects + awkward PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON CXX_EXTENSIONS NO) -add_library(awkward-static STATIC $) -set_property(TARGET awkward-static PROPERTY POSITION_INDEPENDENT_CODE ON) -target_link_libraries(awkward-static PRIVATE awkward-cpu-kernels-static ${CMAKE_DL_LIBS}) -target_link_libraries(awkward-static PUBLIC awkward-parent) - -add_library(awkward SHARED $) -target_link_libraries(awkward PRIVATE awkward-cpu-kernels-static ${CMAKE_DL_LIBS}) -target_link_libraries(awkward PUBLIC awkward-parent) - # Third tier: Python modules. find_package(Python REQUIRED COMPONENTS Interpreter Development.Module) find_package(pybind11 CONFIG REQUIRED) # Install python bindings file(GLOB LAYOUT_SOURCES "src/python/*.cpp") -pybind11_add_module(_ext ${LAYOUT_SOURCES}) -target_link_libraries(_ext PRIVATE awkward-static) +pybind11_add_module(_ext MODULE ${LAYOUT_SOURCES}) +target_link_libraries(_ext PRIVATE awkward) set_target_properties( _ext PROPERTIES CXX_VISIBILITY_PRESET hidden diff --git a/awkward-cpp/include/awkward/builder/ArrayBuilder.h b/awkward-cpp/include/awkward/builder/ArrayBuilder.h index c7a090403d..0107a06cdd 100644 --- a/awkward-cpp/include/awkward/builder/ArrayBuilder.h +++ b/awkward-cpp/include/awkward/builder/ArrayBuilder.h @@ -20,7 +20,7 @@ namespace awkward { /// @brief User interface to the Builder system: the ArrayBuilder is a /// fixed reference while the Builder subclass instances change in /// response to accumulating data. - class LIBAWKWARD_EXPORT_SYMBOL ArrayBuilder { + class EXPORT_SYMBOL ArrayBuilder { public: /// @brief Creates an ArrayBuilder from a full set of parameters. /// @@ -244,131 +244,131 @@ namespace awkward { extern "C" { /// @brief C interface to {@link awkward::ArrayBuilder#length ArrayBuilder::length}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_length(void* arraybuilder, int64_t* result); /// @brief C interface to {@link awkward::ArrayBuilder#clear ArrayBuilder::clear}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_clear(void* arraybuilder); /// @brief C interface to {@link awkward::ArrayBuilder#null ArrayBuilder::null}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_null(void* arraybuilder); /// @brief C interface to {@link awkward::ArrayBuilder#boolean ArrayBuilder::boolean}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_boolean(void* arraybuilder, bool x); /// @brief C interface to {@link awkward::ArrayBuilder#integer ArrayBuilder::integer}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_integer(void* arraybuilder, int64_t x); /// @brief C interface to {@link awkward::ArrayBuilder#real ArrayBuilder::real}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_real(void* arraybuilder, double x); /// @brief C interface to {@link awkward::ArrayBuilder#complex ArrayBuilder::complex}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_complex(void* arraybuilder, double real, double imag); /// @brief C interface to {@link awkward::ArrayBuilder#datetime ArrayBuilder::datetime}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_datetime(void* arraybuilder, int64_t x, const char* unit); /// @brief C interface to {@link awkward::ArrayBuilder#timedelta ArrayBuilder::timedelta}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_timedelta(void* arraybuilder, int64_t x, const char* unit); /// @brief C interface to /// {@link awkward::ArrayBuilder#bytestring ArrayBuilder::bytestring}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_bytestring(void* arraybuilder, const char* x); /// @brief C interface to /// {@link awkward::ArrayBuilder#bytestring ArrayBuilder::bytestring}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_bytestring_length(void* arraybuilder, const char* x, int64_t length); /// @brief C interface to {@link awkward::ArrayBuilder#string ArrayBuilder::string}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_string(void* arraybuilder, const char* x); /// @brief C interface to {@link awkward::ArrayBuilder#string ArrayBuilder::string}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_string_length(void* arraybuilder, const char* x, int64_t length); /// @brief C interface to /// {@link awkward::ArrayBuilder#beginlist ArrayBuilder::beginlist}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_beginlist(void* arraybuilder); /// @brief C interface to {@link awkward::ArrayBuilder#endlist ArrayBuilder::endlist}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_endlist(void* arraybuilder); /// @brief C interface to /// {@link awkward::ArrayBuilder#begintuple ArrayBuilder::begintuple}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_begintuple(void* arraybuilder, int64_t numfields); /// @brief C interface to {@link awkward::ArrayBuilder#index ArrayBuilder::index}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_index(void* arraybuilder, int64_t index); /// @brief C interface to /// {@link awkward::ArrayBuilder#endtuple ArrayBuilder::endtuple}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_endtuple(void* arraybuilder); /// @brief C interface to /// {@link awkward::ArrayBuilder#beginrecord ArrayBuilder::beginrecord}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_beginrecord(void* arraybuilder); /// @brief C interface to /// {@link awkward::ArrayBuilder#beginrecord_fast ArrayBuilder::beginrecord_fast}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_beginrecord_fast(void* arraybuilder, const char* name); /// @brief C interface to /// {@link awkward::ArrayBuilder#beginrecord_check ArrayBuilder::beginrecord_check}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_beginrecord_check(void* arraybuilder, const char* name); /// @brief C interface to /// {@link awkward::ArrayBuilder#field_fast ArrayBuilder::field_fast}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_field_fast(void* arraybuilder, const char* key); /// @brief C interface to /// {@link awkward::ArrayBuilder#field_check ArrayBuilder::field_check}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_field_check(void* arraybuilder, const char* key); /// @brief C interface to /// {@link awkward::ArrayBuilder#endrecord ArrayBuilder::endrecord}. - LIBAWKWARD_EXPORT_SYMBOL uint8_t + EXPORT_SYMBOL uint8_t awkward_ArrayBuilder_endrecord(void* arraybuilder); } diff --git a/awkward-cpp/include/awkward/builder/BoolBuilder.h b/awkward-cpp/include/awkward/builder/BoolBuilder.h index 82dda90eed..7601b45849 100644 --- a/awkward-cpp/include/awkward/builder/BoolBuilder.h +++ b/awkward-cpp/include/awkward/builder/BoolBuilder.h @@ -16,7 +16,7 @@ namespace awkward { /// @class BoolBuilder /// /// @brief Builder node that accumulates boolean values. - class LIBAWKWARD_EXPORT_SYMBOL BoolBuilder: public Builder { + class EXPORT_SYMBOL BoolBuilder: public Builder { public: /// @brief Create an empty BoolBuilder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/Builder.h b/awkward-cpp/include/awkward/builder/Builder.h index ef8737b7ba..212e5f2a6d 100644 --- a/awkward-cpp/include/awkward/builder/Builder.h +++ b/awkward-cpp/include/awkward/builder/Builder.h @@ -38,7 +38,7 @@ namespace awkward { /// /// @brief Abstract base class for nodes within an ArrayBuilder that /// cumulatively discover an array's type and fill it. - class LIBAWKWARD_EXPORT_SYMBOL Builder: public std::enable_shared_from_this { + class EXPORT_SYMBOL Builder: public std::enable_shared_from_this { public: /// @brief Virtual destructor acts as a first non-inline virtual function /// that determines a specific translation unit in which vtable shall be diff --git a/awkward-cpp/include/awkward/builder/Complex128Builder.h b/awkward-cpp/include/awkward/builder/Complex128Builder.h index 2c20cc646a..99c5234d38 100644 --- a/awkward-cpp/include/awkward/builder/Complex128Builder.h +++ b/awkward-cpp/include/awkward/builder/Complex128Builder.h @@ -14,7 +14,7 @@ namespace awkward { /// @class Complex128Builder /// /// @brief Builder node that accumulates real numbers (`double`). - class LIBAWKWARD_EXPORT_SYMBOL Complex128Builder: public Builder { + class EXPORT_SYMBOL Complex128Builder: public Builder { public: /// @brief Create an empty Complex128Builder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/DatetimeBuilder.h b/awkward-cpp/include/awkward/builder/DatetimeBuilder.h index d195d432fd..086224765d 100644 --- a/awkward-cpp/include/awkward/builder/DatetimeBuilder.h +++ b/awkward-cpp/include/awkward/builder/DatetimeBuilder.h @@ -13,7 +13,7 @@ namespace awkward { /// @class DatetimeBuilder /// /// @brief Builder node that accumulates integers (`int64_t`). - class LIBAWKWARD_EXPORT_SYMBOL DatetimeBuilder: public Builder { + class EXPORT_SYMBOL DatetimeBuilder: public Builder { public: /// @brief Create an empty DatetimeBuilder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/Float64Builder.h b/awkward-cpp/include/awkward/builder/Float64Builder.h index fa4e06e158..d6e59b4f5f 100644 --- a/awkward-cpp/include/awkward/builder/Float64Builder.h +++ b/awkward-cpp/include/awkward/builder/Float64Builder.h @@ -15,7 +15,7 @@ namespace awkward { /// @class Float64Builder /// /// @brief Builder node that accumulates real numbers (`double`). - class LIBAWKWARD_EXPORT_SYMBOL Float64Builder: public Builder { + class EXPORT_SYMBOL Float64Builder: public Builder { public: /// @brief Create an empty Float64Builder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/Int64Builder.h b/awkward-cpp/include/awkward/builder/Int64Builder.h index 00a88d3765..e3c82ba842 100644 --- a/awkward-cpp/include/awkward/builder/Int64Builder.h +++ b/awkward-cpp/include/awkward/builder/Int64Builder.h @@ -13,7 +13,7 @@ namespace awkward { /// @class Int64Builder /// /// @brief Builder node that accumulates integers (`int64_t`). - class LIBAWKWARD_EXPORT_SYMBOL Int64Builder: public Builder { + class EXPORT_SYMBOL Int64Builder: public Builder { public: /// @brief Create an empty Int64Builder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/ListBuilder.h b/awkward-cpp/include/awkward/builder/ListBuilder.h index e2cf6fc8ca..c16494a073 100644 --- a/awkward-cpp/include/awkward/builder/ListBuilder.h +++ b/awkward-cpp/include/awkward/builder/ListBuilder.h @@ -15,7 +15,7 @@ namespace awkward { /// @class ListBuilder /// /// @brief Builder node that accumulates lists. - class LIBAWKWARD_EXPORT_SYMBOL ListBuilder: public Builder { + class EXPORT_SYMBOL ListBuilder: public Builder { public: /// @brief Create an empty ListBuilder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/OptionBuilder.h b/awkward-cpp/include/awkward/builder/OptionBuilder.h index 65e911aabe..eebbfbfd4a 100644 --- a/awkward-cpp/include/awkward/builder/OptionBuilder.h +++ b/awkward-cpp/include/awkward/builder/OptionBuilder.h @@ -15,7 +15,7 @@ namespace awkward { /// @class OptionBuilder /// /// @brief Builder node that accumulates data with missing values (`None`). - class LIBAWKWARD_EXPORT_SYMBOL OptionBuilder: public Builder { + class EXPORT_SYMBOL OptionBuilder: public Builder { public: /// @brief Create an OptionBuilder from a number of nulls (all missing). /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/RecordBuilder.h b/awkward-cpp/include/awkward/builder/RecordBuilder.h index ed099ba424..0df2c6708d 100644 --- a/awkward-cpp/include/awkward/builder/RecordBuilder.h +++ b/awkward-cpp/include/awkward/builder/RecordBuilder.h @@ -15,7 +15,7 @@ namespace awkward { /// @class RecordBuilder /// /// @brief Builder node for accumulated records. - class LIBAWKWARD_EXPORT_SYMBOL RecordBuilder: public Builder { + class EXPORT_SYMBOL RecordBuilder: public Builder { public: /// @brief Create an empty RecordBuilder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/StringBuilder.h b/awkward-cpp/include/awkward/builder/StringBuilder.h index 8ba26bdae6..f4c93c62fb 100644 --- a/awkward-cpp/include/awkward/builder/StringBuilder.h +++ b/awkward-cpp/include/awkward/builder/StringBuilder.h @@ -13,7 +13,7 @@ namespace awkward { /// @class StringBuilder /// /// @brief Builder node that accumulates strings. - class LIBAWKWARD_EXPORT_SYMBOL StringBuilder: public Builder { + class EXPORT_SYMBOL StringBuilder: public Builder { public: /// @brief Create an empty StringBuilder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/TupleBuilder.h b/awkward-cpp/include/awkward/builder/TupleBuilder.h index f5a9ff4326..5f7b4564ad 100644 --- a/awkward-cpp/include/awkward/builder/TupleBuilder.h +++ b/awkward-cpp/include/awkward/builder/TupleBuilder.h @@ -15,7 +15,7 @@ namespace awkward { /// @class TupleBuilder /// /// @brief Builder node for accumulated tuples. - class LIBAWKWARD_EXPORT_SYMBOL TupleBuilder: public Builder { + class EXPORT_SYMBOL TupleBuilder: public Builder { public: /// @brief Create an empty TupleBuilder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/builder/UnionBuilder.h b/awkward-cpp/include/awkward/builder/UnionBuilder.h index b1e12c0201..db94e29899 100644 --- a/awkward-cpp/include/awkward/builder/UnionBuilder.h +++ b/awkward-cpp/include/awkward/builder/UnionBuilder.h @@ -17,7 +17,7 @@ namespace awkward { /// @class UnionBuilder /// /// @brief Builder node for accumulated heterogeneous data. - class LIBAWKWARD_EXPORT_SYMBOL UnionBuilder: public Builder { + class EXPORT_SYMBOL UnionBuilder: public Builder { public: static const BuilderPtr fromsingle(const BuilderOptions& options, diff --git a/awkward-cpp/include/awkward/builder/UnknownBuilder.h b/awkward-cpp/include/awkward/builder/UnknownBuilder.h index a6d87fb600..29faa4df58 100644 --- a/awkward-cpp/include/awkward/builder/UnknownBuilder.h +++ b/awkward-cpp/include/awkward/builder/UnknownBuilder.h @@ -14,7 +14,7 @@ namespace awkward { /// @class UnknownBuilder /// /// @brief Builder node for accumulated data whose type is not yet known. - class LIBAWKWARD_EXPORT_SYMBOL UnknownBuilder: public Builder { + class EXPORT_SYMBOL UnknownBuilder: public Builder { public: /// @brief Create an empty UnknownBuilder. /// @param options Configuration options for building an array; diff --git a/awkward-cpp/include/awkward/common.h b/awkward-cpp/include/awkward/common.h index dab4869912..4bb918c4bc 100644 --- a/awkward-cpp/include/awkward/common.h +++ b/awkward-cpp/include/awkward/common.h @@ -40,10 +40,6 @@ #define EXPORT_TEMPLATE_INST EXPORT_SYMBOL #endif -#ifndef LIBAWKWARD_EXPORT_SYMBOL - #define LIBAWKWARD_EXPORT_SYMBOL -#endif - #include #include #include @@ -53,7 +49,7 @@ #include extern "C" { - struct LIBAWKWARD_EXPORT_SYMBOL Error { + struct EXPORT_SYMBOL Error { const char* str; const char* filename; int64_t identity; diff --git a/awkward-cpp/include/awkward/forth/ForthInputBuffer.h b/awkward-cpp/include/awkward/forth/ForthInputBuffer.h index 107f1c5a68..04626d1d89 100644 --- a/awkward-cpp/include/awkward/forth/ForthInputBuffer.h +++ b/awkward-cpp/include/awkward/forth/ForthInputBuffer.h @@ -14,7 +14,7 @@ namespace awkward { /// @brief HERE /// /// THERE - class LIBAWKWARD_EXPORT_SYMBOL ForthInputBuffer { + class EXPORT_SYMBOL ForthInputBuffer { public: /// @brief HERE ForthInputBuffer(const std::shared_ptr ptr, diff --git a/awkward-cpp/include/awkward/forth/ForthMachine.h b/awkward-cpp/include/awkward/forth/ForthMachine.h index 73b5fa9384..8ef1887de8 100644 --- a/awkward-cpp/include/awkward/forth/ForthMachine.h +++ b/awkward-cpp/include/awkward/forth/ForthMachine.h @@ -19,7 +19,7 @@ namespace awkward { /// /// THERE template - class LIBAWKWARD_EXPORT_SYMBOL ForthMachineOf { + class EXPORT_SYMBOL ForthMachineOf { template using IndexTypeOf = typename std::vector::size_type; diff --git a/awkward-cpp/include/awkward/forth/ForthOutputBuffer.h b/awkward-cpp/include/awkward/forth/ForthOutputBuffer.h index d393859066..ec0619a538 100644 --- a/awkward-cpp/include/awkward/forth/ForthOutputBuffer.h +++ b/awkward-cpp/include/awkward/forth/ForthOutputBuffer.h @@ -31,7 +31,7 @@ namespace awkward { /// @brief HERE /// /// THERE - class LIBAWKWARD_EXPORT_SYMBOL ForthOutputBuffer { + class EXPORT_SYMBOL ForthOutputBuffer { public: ForthOutputBuffer(int64_t initial, double resize); @@ -193,7 +193,7 @@ namespace awkward { }; template - class LIBAWKWARD_EXPORT_SYMBOL ForthOutputBufferOf : public ForthOutputBuffer { + class EXPORT_SYMBOL ForthOutputBufferOf : public ForthOutputBuffer { public: ForthOutputBufferOf(int64_t initial, double resize); diff --git a/awkward-cpp/include/awkward/io/json.h b/awkward-cpp/include/awkward/io/json.h index 6eaf19735f..127dfd1b6e 100644 --- a/awkward-cpp/include/awkward/io/json.h +++ b/awkward-cpp/include/awkward/io/json.h @@ -40,7 +40,7 @@ namespace awkward { /// representation in JSON format. /// @param minus_infinity_string User-defined string for a negative /// infinity representation in JSON format. - LIBAWKWARD_EXPORT_SYMBOL void + EXPORT_SYMBOL void fromjsonobject(FileLikeObject* source, ArrayBuilder& builder, int64_t buffersize, @@ -49,7 +49,7 @@ namespace awkward { const char* posinf_string = nullptr, const char* neginf_string = nullptr); - class FromJsonObjectSchema { + class EXPORT_SYMBOL FromJsonObjectSchema { public: FromJsonObjectSchema(FileLikeObject* source, int64_t buffersize, @@ -61,6 +61,12 @@ namespace awkward { int64_t initial, double resize); + // Delete copy constructor + FromJsonObjectSchema(const FromJsonObjectSchema&) = delete; + + // Delete copy-assignment constructor + FromJsonObjectSchema& operator=(FromJsonObjectSchema&) = delete; + /// @brief HERE inline int64_t current_stack_depth() const noexcept { return current_stack_depth_; diff --git a/awkward-cpp/include/awkward/util.h b/awkward-cpp/include/awkward/util.h index 712b73980f..b6ff5c7561 100644 --- a/awkward-cpp/include/awkward/util.h +++ b/awkward-cpp/include/awkward/util.h @@ -19,7 +19,7 @@ namespace awkward { /// @brief NumPy dtypes that can be interpreted within Awkward C++ /// (only the primitive, fixed-width types). Non-native-endian types /// are considered NOT_PRIMITIVE. - enum class dtype { + enum class EXPORT_SYMBOL dtype { NOT_PRIMITIVE, boolean, int8, @@ -43,11 +43,11 @@ namespace awkward { }; /// @brief Returns the name associated with a given dtype. - const std::string + EXPORT_SYMBOL const std::string dtype_to_name(dtype dt); /// @brief Convert a dtype enum into a NumPy format string. - const std::string + EXPORT_SYMBOL const std::string dtype_to_format(dtype dt, const std::string& format = ""); /// @brief Puts quotation marks around a string and escapes the appropriate @@ -100,7 +100,7 @@ namespace awkward { /// Python object when there are no more C++ shared pointers /// referencing it. template - class LIBAWKWARD_EXPORT_SYMBOL array_deleter { + class EXPORT_SYMBOL array_deleter { public: /// @brief Called by `std::shared_ptr` when its reference count reaches /// zero.