Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make all public classes of CSP visible for user extension modules #365

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 1 addition & 39 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -225,45 +225,7 @@ message("\n${Green}CMake Search Path: ${CMAKE_MODULE_PATH}${ColorReset}")
###################################################################################################################################################
# Helpers #
###########
# FIXME: consolidate this function with Findcsp_autogen.cmake
function(csp_autogen MODULE_NAME DEST_FILENAME HEADER_NAME_OUTVAR SOURCE_NAME_OUTVAR)
string( REPLACE "." "\/" MODULE_FILENAME ${MODULE_NAME} )
string( JOIN "." MODULE_FILENAME ${MODULE_FILENAME} "py" )

add_custom_target( mkdir_autogen_${MODULE_NAME}
ALL COMMAND ${CMAKE_COMMAND} -E make_directory
"${CMAKE_CURRENT_BINARY_DIR}/csp_autogen" )

# VARARGS done by position
if(ARGV4)
set(CSP_AUTOGEN_EXTRA_ARGS "${ARGV4}")
else()
set(CSP_AUTOGEN_EXTRA_ARGS "")
endif()

cmake_path(SET CSP_AUTOGEN_MODULE_PATH NORMALIZE "${CMAKE_SOURCE_DIR}/csp/build/csp_autogen.py")
cmake_path(SET CSP_AUTOGEN_DESTINATION_FOLDER NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen")
cmake_path(SET CSP_AUTOTGEN_CPP_OUT NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.cpp")
cmake_path(SET CSP_AUTOTGEN_H_OUT NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.h")

if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(CSP_AUTOGEN_PYTHONPATH ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE};${CMAKE_SOURCE_DIR};%PYTHONPATH% )
else()
set(CSP_AUTOGEN_PYTHONPATH ${PROJECT_BINARY_DIR}/lib:${CMAKE_SOURCE_DIR}:$$PYTHONPATH )
endif()

add_custom_command(OUTPUT "${CSP_AUTOTGEN_CPP_OUT}" "${CSP_AUTOTGEN_H_OUT}"
COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${CSP_AUTOGEN_PYTHONPATH}" ${Python_EXECUTABLE} ${CSP_AUTOGEN_MODULE_PATH} -m ${MODULE_NAME} -d ${CSP_AUTOGEN_DESTINATION_FOLDER} -o ${DEST_FILENAME} ${CSP_AUTOGEN_EXTRA_ARGS}
COMMENT "generating csp c++ types from module ${MODULE_NAME}"
DEPENDS mkdir_autogen_${MODULE_NAME}
${CMAKE_SOURCE_DIR}/csp/build/csp_autogen.py
${CMAKE_SOURCE_DIR}/${MODULE_FILENAME}
csptypesimpl
)

set(${SOURCE_NAME_OUTVAR} "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.cpp" PARENT_SCOPE )
set(${HEADER_NAME_OUTVAR} "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.h" PARENT_SCOPE )
endfunction()
find_package(csp_autogen REQUIRED)


###################################################################################################################################################
Expand Down
1 change: 1 addition & 0 deletions conda/dev-environment-unix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ dependencies:
- libarrow=16
- libboost>=1.80.0
- libboost-headers>=1.80.0
- libprotobuf<5
- librdkafka
- lz4-c
- mamba
Expand Down
1 change: 1 addition & 0 deletions conda/dev-environment-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ dependencies:
- libarrow=16
- libboost>=1.80.0
- libboost-headers>=1.80.0
- libprotobuf<5
- librdkafka
- lz4-c
- make
Expand Down
149 changes: 94 additions & 55 deletions cpp/cmake/modules/FindCSP.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,75 +29,114 @@

cmake_minimum_required(VERSION 3.7.2)

find_package(Python ${CSP_PYTHON_VERSION} EXACT REQUIRED COMPONENTS Interpreter)

set(ENV{PYTHONPATH} "${CMAKE_SOURCE_DIR}/ext:$ENV{PYTHONPATH}")

# Find out the base path
execute_process(
COMMAND "${Python_EXECUTABLE}" -c
"from __future__ import print_function;import os.path;import csp;print(os.path.dirname(csp.__file__), end='')"
OUTPUT_VARIABLE __csp_base_path)
if(EXISTS "${CMAKE_SOURCE_DIR}/csp/__init__.py")
set(CSP_IN_SOURCE_BUILD ON)
set(__csp_base_path "${CMAKE_SOURCE_DIR}/csp")
set(__csp_include_path "${CMAKE_SOURCE_DIR}/cpp")
set(__csp_lib_path "${CMAKE_SOURCE_DIR}/")
set(__csp_base_path "${CMAKE_SOURCE_DIR}/csp")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

duplicate with line 35 and the next line, i mustve had a stroke while writing this

set(__csp_base_path "${CMAKE_SOURCE_DIR}/csp")
set(__csp_version "0.0.0")
else()
set(CSP_IN_SOURCE_BUILD OFF)
# Find out the base path by interrogating the installed csp
find_package(Python ${CSP_PYTHON_VERSION} EXACT REQUIRED COMPONENTS Interpreter)
execute_process(
COMMAND "${Python_EXECUTABLE}" -c
"from __future__ import print_function;import os.path;import csp;print(os.path.dirname(csp.__file__), end='')"
OUTPUT_VARIABLE __csp_base_path)

# Find out the include path
execute_process(
COMMAND "${Python_EXECUTABLE}" -c
"from __future__ import print_function;import csp;print(csp.get_include_path(), end='')"
OUTPUT_VARIABLE __csp_include_path)
# Find out the include path
execute_process(
COMMAND "${Python_EXECUTABLE}" -c
"from __future__ import print_function;import csp;print(csp.get_include_path(), end='')"
OUTPUT_VARIABLE __csp_include_path)

# Find out the lib path
execute_process(
# Find out the lib path
execute_process(
COMMAND "${Python_EXECUTABLE}" -c
"from __future__ import print_function;import csp;print(csp.get_lib_path(), end='')"
OUTPUT_VARIABLE __csp_lib_path)
"from __future__ import print_function;import csp;print(csp.get_lib_path(), end='')"
OUTPUT_VARIABLE __csp_lib_path)

# And the version
execute_process(
COMMAND "${Python_EXECUTABLE}" -c
"from __future__ import print_function;import csp;print(csp.__version__, end='')"
OUTPUT_VARIABLE __csp_version)
# And the version
execute_process(
COMMAND "${Python_EXECUTABLE}" -c
"from __future__ import print_function;import csp;print(csp.__version__, end='')"
OUTPUT_VARIABLE __csp_version)
endif()

# Now look for files
find_file(CSP_AUTOGEN csp_autogen.py HINTS "${__csp_base_path}/build" NO_DEFAULT_PATH)
find_path(CSP_INCLUDE_DIR csp/core/System.h HINTS "${__csp_include_path}" "${PYTHON_INCLUDE_PATH}" NO_DEFAULT_PATH)
find_path(CSP_LIBS_DIR _cspimpl.so HINTS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_LIBRARY NAMES _cspimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_CORE_LIBRARY NAMES libcsp_core_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_ENGINE_LIBRARY NAMES libcsp_engine_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_TYPES_LIBRARY NAMES _csptypesimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_TYPES_STATIC_LIBRARY NAMES libcsp_types_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_BASELIB_LIBARY NAMES _cspbaselibimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_BASELIB_STATIC_LIBRARY NAMES libbaselibimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_BASKETLIB_LIBRARY NAMES _cspbasketlibimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_BASKETLIB_STATIC_LIBRARY NAMES libbasketlibimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_TESTLIB_LIBRARY NAMES _csptestlibimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_MATH_LIBRARY NAMES _cspmathimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_MATH_STATIC_LIBRARY NAMES libmathimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_STATS_LIBRARY NAMES _cspstatsimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_STATS_STATIC_LIBRARY NAMES libstatsimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_NPSTATS_LIBRARY NAMES _cspnpstatsimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_ADAPTER_UTILS_LIBRARY NAMES libcsp_adapter_utils_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_KAFKAADAPTER_LIBRARY NAMES _kafkaadapterimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_KAFKAADAPTER_STATIC_LIBRARY NAMES libcsp_kafka_adapter_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_PARQUETADAPTER_LIBRARY NAMES _parquetadapterimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_PARQUETADAPTER_STATIC_LIBRARY NAMES libcsp_parquet_adapter_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
if(CSP_IN_SOURCE_BUILD)
set(CSP_LIBS_DIR "${CMAKE_BINARY_DIR}/lib")
set(CSP_LIBRARY "${CSP_LIBS_DIR}/_cspimpl.so")
set(CSP_CORE_LIBRARY "${CSP_LIBS_DIR}/libcsp_core_static.a")
set(CSP_ENGINE_LIBRARY "${CSP_LIBS_DIR}/libcsp_engine_static.a")
set(CSP_TYPES_LIBRARY "${CSP_LIBS_DIR}/_csptypesimpl.so")
set(CSP_TYPES_LIBRARY_FOR_AUTOGEN "csptypesimpl") # NOTE: this is handled a bit specially in-source
set(CSP_TYPES_STATIC_LIBRARY "${CSP_LIBS_DIR}/libcsp_types_static.a")
set(CSP_BASELIB_LIBARY "${CSP_LIBS_DIR}/_cspbaselibimpl.so")
set(CSP_BASELIB_STATIC_LIBRARY "${CSP_LIBS_DIR}/libbaselibimpl_static.a")
set(CSP_BASKETLIB_LIBRARY "${CSP_LIBS_DIR}/_cspbasketlibimpl.so")
set(CSP_BASKETLIB_STATIC_LIBRARY "${CSP_LIBS_DIR}/libbasketlibimpl_static.a")
set(CSP_TESTLIB_LIBRARY "${CSP_LIBS_DIR}/_csptestlibimpl.so")
set(CSP_MATH_LIBRARY "${CSP_LIBS_DIR}/_cspmathimpl.so")
set(CSP_MATH_STATIC_LIBRARY "${CSP_LIBS_DIR}/libmathimpl_static.a")
set(CSP_STATS_LIBRARY "${CSP_LIBS_DIR}/_cspstatsimpl.so")
set(CSP_STATS_STATIC_LIBRARY "${CSP_LIBS_DIR}/libstatsimpl_static.a")
set(CSP_NPSTATS_LIBRARY "${CSP_LIBS_DIR}/_cspnpstatsimpl.so")
set(CSP_ADAPTER_UTILS_LIBRARY "${CSP_LIBS_DIR}/libcsp_adapter_utils_static.a")
set(CSP_KAFKAADAPTER_LIBRARY "${CSP_LIBS_DIR}/_kafkaadapterimpl.so")
set(CSP_KAFKAADAPTER_STATIC_LIBRARY "${CSP_LIBS_DIR}/libcsp_kafka_adapter_static.a")
set(CSP_PARQUETADAPTER_LIBRARY "${CSP_LIBS_DIR}/_parquetadapterimpl.so")
set(CSP_PARQUETADAPTER_STATIC_LIBRARY "${CSP_LIBS_DIR}/libcsp_parquet_adapter_static.a")
set(CSP_WEBSOCKETADAPTER_LIBRARY "${CSP_LIBS_DIR}/_websocketadapterimpl.so")
set(CSP_WEBSOCKETADAPTER_STATIC_LIBRARY "${CSP_LIBS_DIR}/libcsp_websocket_client_adapter_static.a")
else()
find_path(CSP_LIBS_DIR _cspimpl.so HINTS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_LIBRARY NAMES _cspimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_CORE_LIBRARY NAMES libcsp_core_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_ENGINE_LIBRARY NAMES libcsp_engine_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_TYPES_LIBRARY NAMES _csptypesimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
set(CSP_TYPES_LIBRARY_FOR_AUTOGEN "${CSP_TYPES_LIBRARY}")
find_library(CSP_TYPES_STATIC_LIBRARY NAMES libcsp_types_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_BASELIB_LIBARY NAMES _cspbaselibimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_BASELIB_STATIC_LIBRARY NAMES libbaselibimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_BASKETLIB_LIBRARY NAMES _cspbasketlibimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_BASKETLIB_STATIC_LIBRARY NAMES libbasketlibimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_TESTLIB_LIBRARY NAMES _csptestlibimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_MATH_LIBRARY NAMES _cspmathimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_MATH_STATIC_LIBRARY NAMES libmathimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_STATS_LIBRARY NAMES _cspstatsimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_STATS_STATIC_LIBRARY NAMES libstatsimpl_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_NPSTATS_LIBRARY NAMES _cspnpstatsimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_ADAPTER_UTILS_LIBRARY NAMES libcsp_adapter_utils_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_KAFKAADAPTER_LIBRARY NAMES _kafkaadapterimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_KAFKAADAPTER_STATIC_LIBRARY NAMES libcsp_kafka_adapter_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_PARQUETADAPTER_LIBRARY NAMES _parquetadapterimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_PARQUETADAPTER_STATIC_LIBRARY NAMES libcsp_parquet_adapter_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)

find_library(CSP_WEBSOCKETADAPTER_LIBRARY NAMES _websocketadapterimpl.so PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
find_library(CSP_WEBSOCKETADAPTER_STATIC_LIBRARY NAMES libcsp_websocket_client_adapter_static.a PATHS "${__csp_lib_path}" NO_DEFAULT_PATH)
endif()

if(CSP_INCLUDE_DIR AND CSP_LIBS_DIR AND CSP_AUTOGEN)
set(CSP_FOUND 1 CACHE INTERNAL "CSP found")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CSP REQUIRED_VARS CSP_INCLUDE_DIR CSP_LIBS_DIR CSP_AUTOGEN VERSION_VAR __csp_version)

find_package(csp_autogen)
32 changes: 17 additions & 15 deletions cpp/cmake/modules/Findcsp_autogen.cmake
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
function(csp_autogen MODULE_NAME DEST_FILENAME HEADER_NAME_OUTVAR SOURCE_NAME_OUTVAR)
string( REPLACE "." "\/" MODULE_FILENAME ${MODULE_NAME} )
string( JOIN "." MODULE_FILENAME ${MODULE_FILENAME} "py" )
string(REPLACE "." "_" MODULE_TARGETNAME ${MODULE_NAME})
string(REPLACE "." "\/" MODULE_FILENAME ${MODULE_NAME})
string(JOIN "." MODULE_FILENAME ${MODULE_FILENAME} "py")

add_custom_target( mkdir_autogen_${MODULE_NAME}
add_custom_target(mkdir_autogen_${MODULE_TARGETNAME}
ALL COMMAND ${CMAKE_COMMAND} -E make_directory
"${CMAKE_CURRENT_BINARY_DIR}/csp_autogen" )
"${CMAKE_CURRENT_BINARY_DIR}/csp_autogen")

# VARARGS done by position
if(ARGV4)
Expand All @@ -13,26 +14,27 @@ function(csp_autogen MODULE_NAME DEST_FILENAME HEADER_NAME_OUTVAR SOURCE_NAME_OU
set(CSP_AUTOGEN_EXTRA_ARGS "")
endif()

cmake_path(SET CSP_AUTOGEN_MODULE_PATH NORMALIZE "${CMAKE_SOURCE_DIR}/csp/build/csp_autogen.py")
find_package(CSP REQUIRED)
cmake_path(SET CSP_AUTOGEN_MODULE_PATH NORMALIZE "${CSP_AUTOGEN}")
cmake_path(SET CSP_AUTOGEN_DESTINATION_FOLDER NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen")
cmake_path(SET CSP_AUTOTGEN_CPP_OUT NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.cpp")
cmake_path(SET CSP_AUTOTGEN_H_OUT NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.h")
cmake_path(SET CSP_AUTOGEN_CPP_OUT NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.cpp")
cmake_path(SET CSP_AUTOGEN_H_OUT NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.h")

if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(CSP_AUTOGEN_PYTHONPATH ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE};${CMAKE_SOURCE_DIR};%PYTHONPATH% )
set(CSP_AUTOGEN_PYTHONPATH ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE};${CMAKE_SOURCE_DIR};%PYTHONPATH%)
else()
set(CSP_AUTOGEN_PYTHONPATH ${PROJECT_BINARY_DIR}/lib:${CMAKE_SOURCE_DIR}:$$PYTHONPATH )
set(CSP_AUTOGEN_PYTHONPATH ${PROJECT_BINARY_DIR}/lib:${CMAKE_SOURCE_DIR}:$$PYTHONPATH)
endif()

add_custom_command(OUTPUT "${CSP_AUTOTGEN_CPP_OUT}" "${CSP_AUTOTGEN_H_OUT}"
add_custom_command(OUTPUT "${CSP_AUTOGEN_CPP_OUT}" "${CSP_AUTOGEN_H_OUT}"
COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${CSP_AUTOGEN_PYTHONPATH}" ${Python_EXECUTABLE} ${CSP_AUTOGEN_MODULE_PATH} -m ${MODULE_NAME} -d ${CSP_AUTOGEN_DESTINATION_FOLDER} -o ${DEST_FILENAME} ${CSP_AUTOGEN_EXTRA_ARGS}
COMMENT "generating csp c++ types from module ${MODULE_NAME}"
DEPENDS mkdir_autogen_${MODULE_NAME}
${CMAKE_SOURCE_DIR}/csp/build/csp_autogen.py
DEPENDS mkdir_autogen_${MODULE_TARGETNAME}
${CSP_AUTOGEN_MODULE_PATH}
${CMAKE_SOURCE_DIR}/${MODULE_FILENAME}
csptypesimpl
${CSP_TYPES_LIBRARY_FOR_AUTOGEN}
)

set(${SOURCE_NAME_OUTVAR} "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.cpp" PARENT_SCOPE )
set(${HEADER_NAME_OUTVAR} "${CMAKE_CURRENT_BINARY_DIR}/csp_autogen/${DEST_FILENAME}.h" PARENT_SCOPE )
set(${SOURCE_NAME_OUTVAR} "${CSP_AUTOGEN_CPP_OUT}" PARENT_SCOPE)
set(${HEADER_NAME_OUTVAR} "${CSP_AUTOGEN_H_OUT}" PARENT_SCOPE)
endfunction()
2 changes: 1 addition & 1 deletion cpp/csp/core/BasicAllocator.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace csp
{

// Extremely basic non-thread safe fixed-size allocator
class BasicAllocator
class CSP_PUBLIC BasicAllocator
{
public:
//elemsize is size of a single alloc, blockSize is number of elements to
Expand Down
2 changes: 1 addition & 1 deletion cpp/csp/core/DynamicBitSet.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace csp
{

template<typename NodeT = uint64_t, typename IndexT = int32_t>
class DynamicBitSet
class CSP_PUBLIC DynamicBitSet
{

public:
Expand Down
2 changes: 1 addition & 1 deletion cpp/csp/core/Enum.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ bool UnknownOnInvalidValue(long) { return false; }

START_PACKED
template<typename EnumTraits>
struct Enum : public EnumTraits
struct CSP_PUBLIC Enum : public EnumTraits
{
using EnumV = typename EnumTraits::_enum;
using Mapping = std::vector<std::string>;
Expand Down
4 changes: 3 additions & 1 deletion cpp/csp/core/EnumBitSet.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef _IN_CSP_CORE_ENUMBITSET_H
#define _IN_CSP_CORE_ENUMBITSET_H

#include <csp/core/Platform.h>

#include <stddef.h>
#include <stdint.h>
#include <initializer_list>
Expand All @@ -12,7 +14,7 @@ namespace csp
//Utility class to hold enums as a bitmask ( where enum values are incremental from 0 )
//enum must have a NUM_TYPES entry for number of entries
template< typename EnumT >
class EnumBitSet
class CSP_PUBLIC EnumBitSet
{
using value_type = uint64_t;

Expand Down
3 changes: 2 additions & 1 deletion cpp/csp/core/Generator.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
#ifndef _IN_CSP_CORE_GENERATOR_H
#define _IN_CSP_CORE_GENERATOR_H

#include <csp/core/Platform.h>
#include <memory>

namespace csp
{
template< typename V, typename ...Args >
class Generator
class CSP_PUBLIC Generator
{
public:
using Ptr = std::shared_ptr<Generator<V, Args...>>;
Expand Down
1 change: 0 additions & 1 deletion cpp/csp/core/Platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ inline uint8_t ffs(uint64_t n)
}

#else

#define CSPIMPL_EXPORT __attribute__ ((visibility ("default")))
#define CSPTYPESIMPL_EXPORT __attribute__ ((visibility ("default")))

Expand Down
9 changes: 6 additions & 3 deletions cpp/csp/core/QueueWaiter.h
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
#ifndef _IN_CSP_CORE_QUEUEBLOCKINGWAIT_H
#define _IN_CSP_CORE_QUEUEBLOCKINGWAIT_H

#include <csp/core/Platform.h>
#include <csp/core/System.h>
#include <csp/core/Time.h>

#include <mutex>
#include <condition_variable>
#include <csp/core/Time.h>
#include <csp/core/System.h>


namespace csp
{

class TimeDelta;

class QueueWaiter
class CSP_PUBLIC QueueWaiter
{
public:
QueueWaiter() : m_eventsPending( false )
Expand Down
3 changes: 2 additions & 1 deletion cpp/csp/core/TaggedPointerUnion.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef _IN_CSP_CORE_TAGGEDPOINTERUNION_H
#define _IN_CSP_CORE_TAGGEDPOINTERUNION_H

#include <csp/core/Platform.h>
#include <csp/core/System.h>

namespace csp
Expand All @@ -25,7 +26,7 @@ struct IndexOf<T, TypeList<TOther, Ts...> >


template<typename... Ts>
class TaggedPointerUnion
class CSP_PUBLIC TaggedPointerUnion
{
public:
static inline constexpr size_t NUM_TAGS = sizeof...(Ts);
Expand Down
Loading
Loading