Skip to content
Merged
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package-info.java
*.sql
*.log
*.txt
!*/CMakeLists.txt
*.csv
resources/*.xml
*.so
Expand Down
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "cpp/pixels-reader"]
path = cpp/pixels-reader
url = https://github.com/yuly16/pixels-reader-cxx
[submodule "cpp/duckdb"]
path = cpp/duckdb
url = https://github.com/yuly16/duckdb
4 changes: 4 additions & 0 deletions cpp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
build/
plot
.idea
.vscode
37 changes: 37 additions & 0 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
cmake_minimum_required(VERSION 2.8.12)

# Set extension name here
set(TARGET_NAME pixels)

set(EXTENSION_NAME ${TARGET_NAME}_extension)
project(${TARGET_NAME})
include_directories(include)

set(EXTENSION_SOURCES
pixels_extension.cpp
PixelsScanFunction.cpp
)
add_library(${EXTENSION_NAME} STATIC ${EXTENSION_SOURCES})


include_directories(pixels-reader/pixels-common/include)
include_directories(pixels-reader/pixels-core/include)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/pixels-reader)

add_subdirectory(pixels-reader)


target_link_libraries(
${EXTENSION_NAME}
pixels-common
pixels-core
)

set(PARAMETERS "-warnings")
build_loadable_extension(${TARGET_NAME} ${PARAMETERS} ${EXTENSION_SOURCES})

install(
TARGETS ${EXTENSION_NAME} pixels-core pixels-common
EXPORT "${DUCKDB_EXPORT_SET}"
LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}")
51 changes: 45 additions & 6 deletions cpp/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,49 @@
all: PixelsCacheReader
.PHONY: all clean debug release pull update

PixelsCacheReader: PixelsCacheReader.cc MemoryMappedFile
$(CXX) -shared -fPIC $@.cc -o lib_pixels.so -I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include/ -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux/
all: release

MemoryMappedFile:
$(CXX) -c $@.cc
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
PROJ_DIR := $(dir $(MKFILE_PATH))

OSX_BUILD_UNIVERSAL_FLAG=
ifeq (${OSX_BUILD_UNIVERSAL}, 1)
OSX_BUILD_UNIVERSAL_FLAG=-DOSX_BUILD_UNIVERSAL=1
endif
ifeq (${STATIC_LIBCPP}, 1)
STATIC_LIBCPP=-DSTATIC_LIBCPP=TRUE
endif

ifeq ($(GEN),ninja)
GENERATOR=-G "Ninja"
FORCE_COLOR=-DFORCE_COLORED_OUTPUT=1
endif

BUILD_FLAGS=-DEXTENSION_STATIC_BUILD=1 -DBUILD_TPCH_EXTENSION=1 -DBUILD_BENCHMARKS=1 -DBUILD_PARQUET_EXTENSION=1 ${OSX_BUILD_UNIVERSAL_FLAG} ${STATIC_LIBCPP}

CLIENT_FLAGS :=

# These flags will make DuckDB build the extension
EXTENSION_FLAGS=-DDUCKDB_OOT_EXTENSION_NAMES="pixels" -DDUCKDB_OOT_EXTENSION_PIXELS_PATH="$(PROJ_DIR)" -DDUCKDB_OOT_EXTENSION_PIXELS_SHOULD_LINK="TRUE" -DDUCKDB_OOT_EXTENSION_PIXELS_INCLUDE_PATH="$(PROJ_DIR)include"

pull:
git submodule init
git submodule update --recursive --remote

update:
git submodule update --remote --merge

clean:
rm -rf ./lib_pixels.so ./*.o
rm -rf build
rm -rf testext
cd duckdb && make clean

# Main build
debug:
mkdir -p build/debug && \
cmake $(GENERATOR) $(FORCE_COLOR) $(EXTENSION_FLAGS) ${CLIENT_FLAGS} -DEXTENSION_STATIC_BUILD=1 -DCMAKE_BUILD_TYPE=Debug ${BUILD_FLAGS} -S ./duckdb/ -B build/debug && \
cmake --build build/debug --config Debug

release:
mkdir -p build/release && \
cmake $(GENERATOR) $(FORCE_COLOR) $(EXTENSION_FLAGS) ${CLIENT_FLAGS} -DEXTENSION_STATIC_BUILD=1 -DCMAKE_BUILD_TYPE=Release ${BUILD_FLAGS} -S ./duckdb/ -B build/release && \
cmake --build build/release --config Release
54 changes: 0 additions & 54 deletions cpp/MemoryMappedFile.cc

This file was deleted.

Loading