Skip to content

Commit

Permalink
installing dependencies manually. No more vcpkg.
Browse files Browse the repository at this point in the history
  • Loading branch information
Hugoberry committed Apr 11, 2024
1 parent f63195c commit 334104d
Show file tree
Hide file tree
Showing 58 changed files with 310,402 additions and 103 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ vcpkg_installed/
data/DataModel_XL
data/mark.pbix
data/dash.pbix
vcpkg/
95 changes: 41 additions & 54 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,85 +1,72 @@
cmake_minimum_required(VERSION 2.8.12)
cmake_minimum_required(VERSION 3.10)
set(CMAKE_CXX_STANDARD 17)


# Set extension name here
set(TARGET_NAME pbix)

# DuckDB's extension distribution supports vcpkg. As such, dependencies can be added in ./vcpkg.json and then
# used in cmake with find_package. Feel free to remove or replace with other dependencies.
# Note that it should also be removed from vcpkg.json to prevent needlessly installing it..
# find_package(OpenSSL REQUIRED)
# find_package(tinyxml2 REQUIRED)
find_package(unofficial-sqlite3 REQUIRED)
find_package(Crc32c REQUIRED)
find_package(miniz REQUIRED)

find_package(Threads REQUIRED)


set(EXTENSION_NAME ${TARGET_NAME}_extension)
set(LOADABLE_EXTENSION_NAME ${TARGET_NAME}_loadable_extension)

# set(STRING_ENCODING_TYPE "ICONV" CACHE STRING "Set the way strings have to be encoded (ICONV|WIN32API|NONE|...)")
# add_definitions(-DKS_STR_ENCODING_ICONV)


project(${TARGET_NAME})
include_directories(src/include)
include_directories(src/kaitai)
include_directories(src/xpress9)
include_directories(src/abf)
include_directories(src/third_party)
include_directories(third_party/miniz)
include_directories(third_party/sqlite)
include_directories(third_party/tinyxml2)
include_directories(third_party/xpress9)
include_directories(third_party)

set(EXTENSION_SOURCES
set(MINIZ_SOURCES
third_party/miniz/miniz.c)

set(SQLITE_SOURCES
third_party/sqlite/sqlite3.c
third_party/sqlite/shell.c)

set(TINYXML2_SOURCES
third_party/tinyxml2/tinyxml2.cpp)

set(XPRESS9_SOURCES
third_party/xpress9/Xpress9DecHuffman.c
third_party/xpress9/Xpress9DecLz77.c
third_party/xpress9/Xpress9Misc.c
third_party/xpress9/Xpress9Wrapper.cpp)

SET(ABF_SOURCES
src/abf/AbfParser.cpp
src/abf/BackupFile.cpp
src/abf/BackupLog.cpp
src/abf/BackupLogHeader.cpp
src/abf/Collations.cpp
src/abf/Crc32.c
src/abf/FileGroup.cpp
src/abf/FileGroups.cpp
src/abf/FileList.cpp
src/abf/Languages.cpp
src/abf/LogBackupFile.cpp
src/abf/VirtualDirectory.cpp
src/abf/VirtualDirectory.cpp)

set(EXTENSION_SOURCES
src/pbix_extension.cpp
src/pbix_scanner.cpp
src/sqlite_db.cpp
src/sqlite_stmt.cpp
src/sqlite_utils.cpp
src/third_party/tinyxml2.cpp
# src/third_party/sqlite3.c
# src/third_party/shell.c
src/xpress9/Xpress9DecHuffman.c
src/xpress9/Xpress9DecLz77.c
src/xpress9/Xpress9Misc.c
src/xpress9/Xpress9Wrapper.cpp)

build_static_extension(${TARGET_NAME} ${EXTENSION_SOURCES})
build_loadable_extension(${TARGET_NAME} " " ${EXTENSION_SOURCES})

# Link OpenSSL in both the static library as the loadable extension
# target_link_libraries(${EXTENSION_NAME} OpenSSL::SSL OpenSSL::Crypto)
# target_link_libraries(${LOADABLE_EXTENSION_NAME} OpenSSL::SSL OpenSSL::Crypto)

# Right after defining and linking libraries to ${EXTENSION_NAME}
# target_link_libraries(${EXTENSION_NAME} tinyxml2::tinyxml2)
target_link_libraries(${EXTENSION_NAME} unofficial::sqlite3::sqlite3)
target_link_libraries(${EXTENSION_NAME} Crc32c::crc32c)
target_link_libraries(${EXTENSION_NAME} Threads::Threads)
target_link_libraries(${EXTENSION_NAME} miniz::miniz)
# Add the include directories here
# target_include_directories(${EXTENSION_NAME} PRIVATE ${tinyxml2_INCLUDE_DIRS})

# And similarly for ${LOADABLE_EXTENSION_NAME}
# target_link_libraries(${LOADABLE_EXTENSION_NAME} tinyxml2::tinyxml2)
target_link_libraries(${LOADABLE_EXTENSION_NAME} unofficial::sqlite3::sqlite3)
target_link_libraries(${LOADABLE_EXTENSION_NAME} Crc32c::crc32c)
target_link_libraries(${LOADABLE_EXTENSION_NAME} Threads::Threads)
target_link_libraries(${LOADABLE_EXTENSION_NAME} miniz::miniz)
# Add the include directories here
# target_include_directories(${LOADABLE_EXTENSION_NAME} PRIVATE ${tinyxml2_INCLUDE_DIRS})
${MINIZ_SOURCES}
${SQLITE_SOURCES}
${TINYXML2_SOURCES}
${XPRESS9_SOURCES}
${ABF_SOURCES})

# build_static_extension(${TARGET_NAME} ${EXTENSION_SOURCES})
# build_loadable_extension(${TARGET_NAME} " " ${EXTENSION_SOURCES})

add_library(${EXTENSION_NAME} STATIC ${EXTENSION_SOURCES})

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



install(
Expand Down
8 changes: 0 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,5 @@ EXT_NAME=pbix
EXT_CONFIG=${PROJ_DIR}extension_config.cmake


# Setting CMAKE_PREFIX_PATH environment variable
# export CMAKE_PREFIX_PATH := vcpkg_installed/x64-linux:${CMAKE_PREFIX_PATH}
# export CMAKE_PREFIX_PATH := vcpkg_installed/x64-linux/share/kaitai-struct-cpp-stl-runtime:${CMAKE_PREFIX_PATH}
# export kaitai-struct-cpp-stl-runtime_DIR := /workspaces/duckdb-pbix-extension/build/release/vcpkg_installed/x64-linux/share/kaitai-struct-cpp-stl-runtime

# VCPKG_TOOLCHAIN_FILE=/workspaces/duckdb-pbix-extension/vcpkg/scripts/buildsystems/vcpkg.cmake


# Include the Makefile from extension-ci-tools
include extension-ci-tools/makefiles/duckdb_extension.Makefile
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
5 changes: 2 additions & 3 deletions src/abf/AbfParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,12 @@
#include "BackupFile.h"
#include "BackupLog.h"

#include <crc32c/crc32c.h>

#include <fstream>
#include <sstream>
#include "miniz.h"

#include "Xpress9Wrapper.h"
#include "Crc32.h"

// Constants related to ZIP file parsing
constexpr unsigned char ZIP_LOCAL_FILE_HEADER_FIXED = 26;
Expand Down Expand Up @@ -59,7 +58,7 @@ class Header {
// Calculate and update the CRC32C for the header
void update_crc() {
// Calculate CRC over the header except the crc32 field itself
crc32 = crc32c::Crc32c(reinterpret_cast<const uint8_t*>(this), sizeof(Header) - sizeof(crc32));
crc32 = Crc32(reinterpret_cast<const uint8_t*>(this), sizeof(Header) - sizeof(crc32),0);
}

// Serialize this header to a binary stream
Expand Down
2 changes: 1 addition & 1 deletion src/abf/BackupFile.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// BackupFile.cpp
#include "BackupFile.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

using namespace tinyxml2;

Expand Down
2 changes: 1 addition & 1 deletion src/abf/BackupFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <vector>
#include <optional>
#include <iostream>
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class BackupFile {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/BackupLog.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include "FileGroups.h"
#include <codecvt>
#include <locale>
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class BackupLog {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/BackupLogHeader.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <iostream>
#include <codecvt>
#include <locale>
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class BackupLogHeader {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/Collations.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Collations.cpp
#include "Collations.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

using namespace tinyxml2;

Expand Down
2 changes: 1 addition & 1 deletion src/abf/Collations.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <vector>
#include <optional>
#include <string>
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class Collations {
public:
Expand Down
84 changes: 84 additions & 0 deletions src/abf/Crc32.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#include "Crc32.h"

// Generating polynomial for Crc32 is
// 0x82f63b78 =
// x^32 + x^28 + x^27 + x^26 + x^25 + x^23 + x^22 + x^20 + x^19 + x^18 + x^14 +
// + x^13 + x^11 + x^10 + x^9 + x^8 + x^6 + x^0
//
static const uint32_t Crc32Table[256] =
{
0x00000000u, 0xf26b8303u, 0xe13b70f7u, 0x1350f3f4u,
0xc79a971fu, 0x35f1141cu, 0x26a1e7e8u, 0xd4ca64ebu,
0x8ad958cfu, 0x78b2dbccu, 0x6be22838u, 0x9989ab3bu,
0x4d43cfd0u, 0xbf284cd3u, 0xac78bf27u, 0x5e133c24u,
0x105ec76fu, 0xe235446cu, 0xf165b798u, 0x030e349bu,
0xd7c45070u, 0x25afd373u, 0x36ff2087u, 0xc494a384u,
0x9a879fa0u, 0x68ec1ca3u, 0x7bbcef57u, 0x89d76c54u,
0x5d1d08bfu, 0xaf768bbcu, 0xbc267848u, 0x4e4dfb4bu,
0x20bd8edeu, 0xd2d60dddu, 0xc186fe29u, 0x33ed7d2au,
0xe72719c1u, 0x154c9ac2u, 0x061c6936u, 0xf477ea35u,
0xaa64d611u, 0x580f5512u, 0x4b5fa6e6u, 0xb93425e5u,
0x6dfe410eu, 0x9f95c20du, 0x8cc531f9u, 0x7eaeb2fau,
0x30e349b1u, 0xc288cab2u, 0xd1d83946u, 0x23b3ba45u,
0xf779deaeu, 0x05125dadu, 0x1642ae59u, 0xe4292d5au,
0xba3a117eu, 0x4851927du, 0x5b016189u, 0xa96ae28au,
0x7da08661u, 0x8fcb0562u, 0x9c9bf696u, 0x6ef07595u,
0x417b1dbcu, 0xb3109ebfu, 0xa0406d4bu, 0x522bee48u,
0x86e18aa3u, 0x748a09a0u, 0x67dafa54u, 0x95b17957u,
0xcba24573u, 0x39c9c670u, 0x2a993584u, 0xd8f2b687u,
0x0c38d26cu, 0xfe53516fu, 0xed03a29bu, 0x1f682198u,
0x5125dad3u, 0xa34e59d0u, 0xb01eaa24u, 0x42752927u,
0x96bf4dccu, 0x64d4cecfu, 0x77843d3bu, 0x85efbe38u,
0xdbfc821cu, 0x2997011fu, 0x3ac7f2ebu, 0xc8ac71e8u,
0x1c661503u, 0xee0d9600u, 0xfd5d65f4u, 0x0f36e6f7u,
0x61c69362u, 0x93ad1061u, 0x80fde395u, 0x72966096u,
0xa65c047du, 0x5437877eu, 0x4767748au, 0xb50cf789u,
0xeb1fcbadu, 0x197448aeu, 0x0a24bb5au, 0xf84f3859u,
0x2c855cb2u, 0xdeeedfb1u, 0xcdbe2c45u, 0x3fd5af46u,
0x7198540du, 0x83f3d70eu, 0x90a324fau, 0x62c8a7f9u,
0xb602c312u, 0x44694011u, 0x5739b3e5u, 0xa55230e6u,
0xfb410cc2u, 0x092a8fc1u, 0x1a7a7c35u, 0xe811ff36u,
0x3cdb9bddu, 0xceb018deu, 0xdde0eb2au, 0x2f8b6829u,
0x82f63b78u, 0x709db87bu, 0x63cd4b8fu, 0x91a6c88cu,
0x456cac67u, 0xb7072f64u, 0xa457dc90u, 0x563c5f93u,
0x082f63b7u, 0xfa44e0b4u, 0xe9141340u, 0x1b7f9043u,
0xcfb5f4a8u, 0x3dde77abu, 0x2e8e845fu, 0xdce5075cu,
0x92a8fc17u, 0x60c37f14u, 0x73938ce0u, 0x81f80fe3u,
0x55326b08u, 0xa759e80bu, 0xb4091bffu, 0x466298fcu,
0x1871a4d8u, 0xea1a27dbu, 0xf94ad42fu, 0x0b21572cu,
0xdfeb33c7u, 0x2d80b0c4u, 0x3ed04330u, 0xccbbc033u,
0xa24bb5a6u, 0x502036a5u, 0x4370c551u, 0xb11b4652u,
0x65d122b9u, 0x97baa1bau, 0x84ea524eu, 0x7681d14du,
0x2892ed69u, 0xdaf96e6au, 0xc9a99d9eu, 0x3bc21e9du,
0xef087a76u, 0x1d63f975u, 0x0e330a81u, 0xfc588982u,
0xb21572c9u, 0x407ef1cau, 0x532e023eu, 0xa145813du,
0x758fe5d6u, 0x87e466d5u, 0x94b49521u, 0x66df1622u,
0x38cc2a06u, 0xcaa7a905u, 0xd9f75af1u, 0x2b9cd9f2u,
0xff56bd19u, 0x0d3d3e1au, 0x1e6dcdeeu, 0xec064eedu,
0xc38d26c4u, 0x31e6a5c7u, 0x22b65633u, 0xd0ddd530u,
0x0417b1dbu, 0xf67c32d8u, 0xe52cc12cu, 0x1747422fu,
0x49547e0bu, 0xbb3ffd08u, 0xa86f0efcu, 0x5a048dffu,
0x8ecee914u, 0x7ca56a17u, 0x6ff599e3u, 0x9d9e1ae0u,
0xd3d3e1abu, 0x21b862a8u, 0x32e8915cu, 0xc083125fu,
0x144976b4u, 0xe622f5b7u, 0xf5720643u, 0x07198540u,
0x590ab964u, 0xab613a67u, 0xb831c993u, 0x4a5a4a90u,
0x9e902e7bu, 0x6cfbad78u, 0x7fab5e8cu, 0x8dc0dd8fu,
0xe330a81au, 0x115b2b19u, 0x020bd8edu, 0xf0605beeu,
0x24aa3f05u, 0xd6c1bc06u, 0xc5914ff2u, 0x37faccf1u,
0x69e9f0d5u, 0x9b8273d6u, 0x88d28022u, 0x7ab90321u,
0xae7367cau, 0x5c18e4c9u, 0x4f48173du, 0xbd23943eu,
0xf36e6f75u, 0x0105ec76u, 0x12551f82u, 0xe03e9c81u,
0x34f4f86au, 0xc69f7b69u, 0xd5cf889du, 0x27a40b9eu,
0x79b737bau, 0x8bdcb4b9u, 0x988c474du, 0x6ae7c44eu,
0xbe2da0a5u, 0x4c4623a6u, 0x5f16d052u, 0xad7d5351u,
};


uint32_t Crc32(const uint8_t *pData, size_t uSize, uint32_t uCrc) {
uCrc ^= 0xffffffffu;
for (size_t i = 0; i < uSize; ++i) {
uCrc = (uCrc >> 8) ^ Crc32Table[(uCrc ^ pData[i]) & 0xFF];
}
uCrc ^= 0xffffffffu;
return uCrc;
}
18 changes: 18 additions & 0 deletions src/abf/Crc32.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#ifndef CRC32_H
#define CRC32_H

#include <stdint.h> // For uint32_t, uint8_t types
#include <stddef.h>

#ifdef __cplusplus
extern "C" {
#endif

// Declare the function that computes the CRC32
uint32_t Crc32(const uint8_t *pData, size_t uSize, uint32_t uCrc);

#ifdef __cplusplus
}
#endif

#endif // CRC32_H
2 changes: 1 addition & 1 deletion src/abf/FileGroup.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <string>
#include <optional>
#include "FileList.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class FileGroup {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/FileGroups.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// FileGroups.cpp
#include "FileGroups.h"
#include "FileGroup.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

using namespace tinyxml2;

Expand Down
2 changes: 1 addition & 1 deletion src/abf/FileGroups.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <vector>
#include <optional>
#include "FileGroup.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class FileGroups {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/FileList.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include <vector>
#include "LogBackupFile.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class FileList {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/Languages.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include <optional>
#include <iostream>
#include <string>
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class Languages {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/LogBackupFile.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// LogBackupFile.cpp
#include "LogBackupFile.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

using namespace tinyxml2;

Expand Down
2 changes: 1 addition & 1 deletion src/abf/LogBackupFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <vector>
#include <optional>
#include <iostream>
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"

class LogBackupFile {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/abf/VirtualDirectory.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <vector>
#include <optional>
#include "BackupFile.h"
#include "../third_party/tinyxml2.h"
#include "../../third_party/tinyxml2/tinyxml2.h"
// VirtualDirectory
class VirtualDirectory {
public:
Expand Down
Loading

0 comments on commit 334104d

Please sign in to comment.