这是indexloc提供的服务,不要输入任何密码
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
4f4eab5
enable apple silicon builds
Oct 15, 2023
549a6a7
restrict Apple Silicon builds to Python3.9+
Oct 15, 2023
72a907f
hw matrix setup
Oct 15, 2023
509406e
print status
Oct 15, 2023
1a096f4
matrix magic
Oct 15, 2023
7b2239b
yaml fix
Oct 15, 2023
c63d3db
test
LeonhardFS Oct 16, 2023
d2861b7
test
LeonhardFS Oct 16, 2023
ab572b8
use macos12 for delocate
LeonhardFS Oct 16, 2023
2f34623
fix
LeonhardFS Oct 16, 2023
10d6c87
Merge branch 'master' into ls-apple-silicon
Oct 22, 2023
b7ba825
Merge branch 'ls-apple-silicon' of github.com:LeonhardFS/tuplex-publi…
Oct 22, 2023
3b07d84
update scripts for arm64 wheels
Oct 24, 2023
d981cc1
experimental transitioning to vcpkg
Oct 24, 2023
1b4b344
llvm 17 can be added
Oct 24, 2023
3496cee
vcpkg support step by step
Oct 25, 2023
15c26f5
wip llvm17 compatibility, remove typed pointers
Oct 25, 2023
28a65a0
remove old functions
Oct 25, 2023
1318a6f
merge in master
Oct 25, 2023
00d56e0
llvm17 fixes, remove old code
Oct 26, 2023
767b311
fixes
Oct 26, 2023
19662ab
more API fixes for llvm17
Oct 27, 2023
13ca03a
more fixing
Oct 27, 2023
273b1ae
compile now works, need to link with llvm libs
Oct 27, 2023
728346b
llvm and cmake tune
Oct 27, 2023
a3b9586
linking and warnings
Oct 27, 2023
5af6370
everything builds now, but tests fail
Oct 27, 2023
22fd6d9
fixes and export symbols in runtime shared object
Nov 2, 2023
356d1a1
compile fixes, change lllvm version to 15 to have typed pointers
Nov 2, 2023
1dd7da8
another fix
Nov 3, 2023
f73d326
update address resolution for llvm17
Nov 3, 2023
9e4d108
update github pipelines to rely on vcpkg for this build
LeonhardFS Nov 4, 2023
6475ccb
protobuf change
Nov 18, 2023
4d24852
merge in master
Nov 19, 2023
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
86 changes: 58 additions & 28 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,65 @@ on: [push, pull_request, workflow_dispatch]

jobs:
build_wheels:
name: Build wheel on ${{ matrix.os }} - py ${{ matrix.python-version }}
name: Build wheel for ${{ matrix.cibw-build }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-20.04, macos-11 ]
python-version: ["3.8", "3.9", "3.10", "3.11"]
# os: [ ubuntu-20.04, macos-11 ]
os: ["macos-12"]
python-version: ["3.9"] #["3.8", "3.9", "3.10", "3.11"]
hw: ["arm64"] #["x86_64", "arm64"]
# exclude:
# - os: ubuntu-20.04
# hw: "arm64"
# - os: macos-11
# python-version: "3.8"
# hw: "arm64"
include:
- os: ubuntu-20.04
python-version: "3.8"
cibw-build: "cp38-manylinux_x86_64"
- os: ubuntu-20.04
# - os: ubuntu-20.04
# python-version: "3.8"
# cibw-build: "cp38-manylinux_x86_64"
# hw: "x86_64"
# - os: ubuntu-20.04
# python-version: "3.9"
# cibw-build: "cp39-manylinux_x86_64"
# hw: "x86_64"
# - os: ubuntu-20.04
# python-version: "3.10"
# cibw-build: "cp310-manylinux_x86_64"
# hw: "x86_64"
# - os: ubuntu-20.04
# python-version: "3.11"
# cibw-build: "cp311-manylinux_x86_64"
# hw: "x86_64"
# - os: macos-11
# python-version: "3.8"
# cibw-build: "cp38-macosx_x86_64"
# hw: "x86_64"
# - os: macos-11
# python-version: "3.9"
# cibw-build: "cp39-macosx_x86_64"
# hw: "x86_64"
# - os: macos-11
# python-version: "3.10"
# cibw-build: "cp310-macosx_x86_64"
# hw: "x86_64"
# - os: macos-11
# python-version: "3.11"
# cibw-build: "cp311-macosx_x86_64"
# hw: "x86_64"
- os: macos-12
python-version: "3.9"
cibw-build: "cp39-manylinux_x86_64"
- os: ubuntu-20.04
python-version: "3.10"
cibw-build: "cp310-manylinux_x86_64"
- os: ubuntu-20.04
python-version: "3.11"
cibw-build: "cp311-manylinux_x86_64"
- os: macos-11
python-version: "3.8"
cibw-build: "cp38-macosx_x86_64"
- os: macos-11
python-version: "3.9"
cibw-build: "cp39-macosx_x86_64"
- os: macos-11
python-version: "3.10"
cibw-build: "cp310-macosx_x86_64"
- os: macos-11
python-version: "3.11"
cibw-build: "cp311-macosx_x86_64"
cibw-build: "cp39-macosx_arm64"
hw: "arm64"
# - os: macos-11
# python-version: "3.10"
# cibw-build: "cp310-macosx_arm64"
# hw: "arm64"
# - os: macos-11
# python-version: "3.11"
# cibw-build: "cp311-macosx_arm64"
# hw: "arm64"
steps:
- uses: actions/checkout@v3

Expand All @@ -51,11 +79,13 @@ jobs:
# configure cibuildwheel to build native archs ('auto'), and some
# emulated ones
CIBW_ARCHS_LINUX: native
CIBW_ARCHS_MACOS: ${{ matrix.hw }}

CIBW_MANYLINUX_X86_64_IMAGE: "registry-1.docker.io/tuplex/ci:${{ matrix.python-version }}"
CIBW_BUILD: ${{ matrix.cibw-build }}

# macOS dependencies separate, for linux use docker tuplex/ci:3.x images.
CIBW_BEFORE_ALL_MACOS: bash ./scripts/macos/install_antlr4_cpp_runtime.sh && bash ./scripts/macos/brew_dependencies.sh && bash ./scripts/macos/install_aws-sdk-cpp.sh && echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> /Users/runner/.bash_profile
#CIBW_BEFORE_ALL_MACOS: bash ./scripts/macos/install_antlr4_cpp_runtime.sh && bash ./scripts/macos/brew_dependencies.sh && bash ./scripts/macos/install_aws-sdk-cpp.sh && echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> /Users/runner/.bash_profile

# bundle aws runner with linux wheel, remove environment variable TUPLEX_LAMBDA_ZIP to remove runner.
CIBW_ENVIRONMENT_LINUX: "TUPLEX_LAMBDA_ZIP='./tuplex/python/tuplex/other/tplxlam.zip' CMAKE_ARGS='-DBUILD_WITH_AWS=ON -DBUILD_WITH_ORC=ON' LD_LIBRARY_PATH=/usr/local/lib:/opt/lib"
Expand All @@ -69,4 +99,4 @@ jobs:
- uses: actions/upload-artifact@v3
with:
path: |
./wheelhouse/*.whl
./wheelhouse/*.whl
46 changes: 34 additions & 12 deletions tuplex/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
# (c) 2017 Leonhard Spiegelberg
# (c) 2017-2023 Leonhard Spiegelberg
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)

# top-level language specification
# enable c++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
message(STATUS "Using language version: C++${CMAKE_CXX_STANDARD}")

# add cmake modules from cmake folder
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/")

# use vcpkg as manager from https://github.com/bitmeal/vcpkg-cmake-integration
#set(VCPKG_VERSION edge) # optional
include("${CMAKE_SOURCE_DIR}/cmake/vcpkg.cmake")




# Tuplex build options:
# =====================

Expand Down Expand Up @@ -36,6 +52,16 @@ if(CMAKE_GENERATOR STREQUAL "Ninja")
message(STATUS "Using ninja generator, if fails use -w dupbuild=err")
endif()

# The -fvisibility=hidden option only works for static builds.
if (NOT BUILD_SHARED_LIBS)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
else()
if (CMAKE_CXX_VISIBILITY_PRESET STREQUAL "hidden")
message(FATAL_ERROR "CMAKE_CXX_VISIBILITY_PRESET=hidden is incompatible \
with BUILD_SHARED_LIBS.")
endif()
endif()

# detect MacOS Version because at least 10.13 is required when building with AWS SDK
if(APPLE)
execute_process(COMMAND bash -c "sw_vers | grep -Eo '([0-9]{1,}\\.)+[0-9]{1,}' | head -1" OUTPUT_VARIABLE MACOSX_VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE)
Expand Down Expand Up @@ -73,14 +99,6 @@ endif()
# uncomment to get verbose cmake output
# set(CMAKE_VERBOSE_MAKEFILE ON)

# top-level language specification
# enable c++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
message(STATUS "Using language version: C++${CMAKE_CXX_STANDARD}")

# add cmake modules from cmake folder
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/")
message(STATUS "additional cmake module path is ${CMAKE_MODULE_PATH}")
include("${CMAKE_SOURCE_DIR}/cmake/ucm.cmake") #handy package to manipulate compiler flags
include("${CMAKE_SOURCE_DIR}/cmake/CPM.cmake") # package manager from https://github.com/cpm-cmake/CPM.cmake
Expand Down Expand Up @@ -985,22 +1003,26 @@ endif()

# ncurses/curses lib for terminal manipulation
find_package(Curses REQUIRED)
find_package(fmt REQUIRED)
find_package(spdlog REQUIRED)

# add subdirs here...
add_subdirectory(io) # <-- make sure to call this first, because it changes parent scope with io dependencies
add_subdirectory(utils)
add_subdirectory(test)
add_subdirectory(codegen)
add_subdirectory(core)
add_subdirectory(python)
add_subdirectory(runtime)
add_subdirectory(adapters)

# can only build aws lambda on linux platform
if(LINUX AND BUILD_WITH_AWS)
# removed AWS lambda implementation, can be found on separate branch
add_subdirectory(awslambda)
add_subdirectory(awslambda)
endif()
# call test dir last to get vars from before
add_subdirectory(test)



###########################################################################
# (7) Additional flags
Expand Down
Loading