diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux.yml index ccd63e1..cfdbf37 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_linux.yml @@ -51,7 +51,7 @@ jobs: - name: Build run: | - mkdir "$QHOME" && mkdir cmake && cd cmake && cmake .. -DCMAKE_BUILD_TYPE=Release -DARROW_INSTALL=$BUILD_HOME && make install && cd .. && tar -zcvf "$OUTPUT_FILE" -C cmake/arrowkdb . + mkdir "$QHOME" && mkdir cmake && cd cmake && cmake .. -DQMOD=ON -DCMAKE_BUILD_TYPE=Release -DARROW_INSTALL=$BUILD_HOME -DCMAKE_INSTALL_PREFIX=$QHOME/kx && make install && cd .. && tar -zcvf "$OUTPUT_FILE" -C $QHOME . - name: Upload workflow artifact uses: actions/upload-artifact@v6 diff --git a/.github/workflows/build_mac.yml b/.github/workflows/build_mac.yml index 0a567ef..5f53128 100644 --- a/.github/workflows/build_mac.yml +++ b/.github/workflows/build_mac.yml @@ -45,7 +45,7 @@ jobs: - name: Build run: | - mkdir "$QHOME" && mkdir cmake && cd cmake && cmake .. -DCMAKE_BUILD_TYPE=Release -DARROW_INSTALL=$BUILD_HOME && make install && cd .. && tar -zcvf "$OUTPUT_FILE" -C cmake/arrowkdb . + mkdir "$QHOME" && mkdir cmake && cd cmake && cmake .. -DQMOD=ON -DCMAKE_BUILD_TYPE=Release -DARROW_INSTALL=$BUILD_HOME && make install && cd .. && tar -zcvf "$OUTPUT_FILE" -C cmake/arrowkdb . - name: Upload workflow artifact uses: actions/upload-artifact@v6 diff --git a/.github/workflows/build_win.yml b/.github/workflows/build_win.yml index 307a8ad..458e0dc 100644 --- a/.github/workflows/build_win.yml +++ b/.github/workflows/build_win.yml @@ -12,7 +12,7 @@ on: jobs: build: - runs-on: windows-latest + runs-on: windows-2022 env: ARROW_INSTALL: ${{ github.workspace }}\cbuild\install @@ -29,9 +29,9 @@ jobs: with: path: | cbuild/install - key: ${{ runner.os }}-arrow-10.0.1 + key: ${{ runner.os }}-arrow-10.0.1-vs2022 restore-keys: | - ${{ runner.os }}-arrow-10.0.1 + ${{ runner.os }}-arrow-10.0.1-vs2022 - name: Get arrow if: steps.cache-arrow.outputs.cache-hit != 'true' @@ -54,16 +54,16 @@ jobs: cd .. cd .. - - name: Build + - name: Build run: | mkdir "${{ env.QHOME }}" mkdir cmake cd cmake - cmake -G "Visual Studio 17 2022" -DARROW_INSTALL="${{ env.ARROW_INSTALL }}" .. + cmake -G "Visual Studio 17 2022" -DQMOD=ON -DARROW_INSTALL="${{ env.ARROW_INSTALL }}" -DCMAKE_INSTALL_PREFIX="${{ env.QHOME }}/kx" .. cmake --build . --config Release cmake --build . --config Release --target install cd .. - 7z a -tzip -r "${{ env.OUTPUT_FILE }}" cmake\arrowkdb\* + 7z a -tzip -r "${{ env.OUTPUT_FILE }}" "${{ env.QHOME }}\*" - name: Upload workflow artifact uses: actions/upload-artifact@v6 diff --git a/.github/workflows/release-assets.yml b/.github/workflows/release-assets.yml index f8e9c9e..e2c696a 100644 --- a/.github/workflows/release-assets.yml +++ b/.github/workflows/release-assets.yml @@ -6,7 +6,8 @@ on: jobs: release: name: Upload release assets - if: github.event_name == 'release' + # if: github.event_name == 'release' + if: false runs-on: ubuntu-slim steps: diff --git a/CMakeLists.txt b/CMakeLists.txt index 2bb331a..9ac5a4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,8 +63,14 @@ include_directories ( if (WIN32) include_directories(C:/Git/vcpkg/installed/x64-windows-static/include) endif() +if(ARROW_INSTALL) + include_directories("${ARROW_INSTALL}/include") +endif() find_package(Arrow REQUIRED) +if(ARROW_INCLUDE_DIR) + include_directories("${ARROW_INCLUDE_DIR}") +endif() if(ARROW_SO_VERSION LESS "1000") set(CMAKE_CXX_STANDARD 14) elseif(ARROW_SO_VERSION LESS "1500") @@ -85,14 +91,12 @@ find_library(PARQUET_LIBRARY file(DOWNLOAD "https://github.com/KxSystems/kdb/raw/master/c/c/k.h" "${CMAKE_BINARY_DIR}/k.h" ) if (MSVC) - set(INSTALL_SCRIPT "install.bat") file(DOWNLOAD "https://github.com/KxSystems/kdb/raw/master/w64/q.lib" "${CMAKE_BINARY_DIR}/q.lib" ) set(LINK_LIBS "${CMAKE_BINARY_DIR}/q.lib") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /D WIN32_LEAN_AND_MEAN /D _CRT_SECURE_NO_WARNINGS /D _CRT_NONSTDC_NO_DEPRECATE /D _WINSOCK_DEPRECATED_NO_WARNINGS") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /D WIN32_LEAN_AND_MEAN /D _CRT_SECURE_NO_WARNINGS /D _CRT_NONSTDC_NO_DEPRECATE /D _WINSOCK_DEPRECATED_NO_WARNINGS") add_compile_options(/wd4710 /wd4711) else() - set(INSTALL_SCRIPT "install.sh") set(LINK_LIBS "") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-aliasing") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-strict-aliasing") @@ -155,7 +159,7 @@ else() install(FILES "$" DESTINATION "${QHOME_PATH}/${OSFLAG}${BITNESS}/" CONFIGURATIONS MinSizeRel Release RENAME ${MY_PRE_MOD_LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) # Add the copied files to the install package - file(COPY README.md LICENSE ${INSTALL_SCRIPT} DESTINATION ${PROJECT_BINARY_DIR}/${MY_PRE_MOD_LIBRARY_NAME}/) + file(COPY README.md LICENSE DESTINATION ${PROJECT_BINARY_DIR}/${MY_PRE_MOD_LIBRARY_NAME}/) file(COPY examples/ DESTINATION ${PROJECT_BINARY_DIR}/${MY_PRE_MOD_LIBRARY_NAME}/examples/) file(COPY q/ DESTINATION ${PROJECT_BINARY_DIR}/${MY_PRE_MOD_LIBRARY_NAME}/q/) file(RENAME ${PROJECT_BINARY_DIR}/${MY_PRE_MOD_LIBRARY_NAME}/q/init.q "${PROJECT_BINARY_DIR}/${MY_PRE_MOD_LIBRARY_NAME}/q/${MY_PRE_MOD_LIBRARY_NAME}.q") diff --git a/install.bat b/install.bat deleted file mode 100644 index cd5a349..0000000 --- a/install.bat +++ /dev/null @@ -1,37 +0,0 @@ -@echo off - -IF "%QHOME%"=="" ( - ECHO ERROR: Enviroment variable QHOME is NOT defined - EXIT /B -) - -IF NOT EXIST %QHOME%\w64 ( - ECHO ERROR: Installation destination %QHOME%\w64 does not exist - EXIT /B -) - -IF NOT EXIST lib ( - ECHO ERROR: Directory 'lib' does not exist. Please run from release package - EXIT /B -) - -IF NOT EXIST q ( - ECHO ERROR: Directory 'q' does not exist. Please run from release package - EXIT /B -) - -ECHO Copying q script to %QHOME% -COPY q\* %QHOME% -IF %ERRORLEVEL% NEQ 0 ( - ECHO ERROR: Copy failed - EXIT /B %ERRORLEVEL% -) - -ECHO Copying DLL to %QHOME%\w64 -COPY lib\* %QHOME%\w64\ -IF %ERRORLEVEL% NEQ 0 ( - ECHO ERROR: Copy failed - EXIT /B %ERRORLEVEL% -) - -ECHO Installation complete \ No newline at end of file diff --git a/install.sh b/install.sh deleted file mode 100644 index 95cd5ae..0000000 --- a/install.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -if [ -z "$QHOME" ] -then - echo "ERROR: QHOME environment not set. Installation failed." - exit 1 -fi - -echo "Detected System" -echo "* OS: $OSTYPE" -echo "* TYPE: $HOSTTYPE" -echo "* MACHINE TYPE: $MACHTYPE" - -# DETECT OS TYPE BEING USED -Q_PATH_SEP="/" -Q_HOST_TYPE="" -if [[ "$OSTYPE" == "linux-gnu" ]]; then - Q_HOST_TYPE="l" -elif [[ "$OSTYPE" == "darwin"* ]]; then - # Mac OSX - Q_HOST_TYPE="m" -elif [[ "$OSTYPE" == "cygwin" ]]; then - # POSIX compatibility layer and Linux environment emulation for Windows - Q_HOST_TYPE="w" - Q_PATH_SEP="\\" -elif [[ "$OSTYPE" == "msys" ]]; then - # Lightweight shell and GNU utilities compiled for Windows (part of MinGW) - Q_HOST_TYPE="w" - Q_PATH_SEP="\\" -elif [[ "$OSTYPE" == "win32" ]]; then - Q_HOST_TYPE="w" - Q_PATH_SEP="\\" -elif [[ "$OSTYPE" == "freebsd"* ]]; then - Q_HOST_TYPE="l" -else - echo "ERROR: OSTYPE $OSTYPE not currently supported by this script" - echo "Please view README.md for installation instructions" - exit 1 -fi - -# DETECT WHETHER 32 OR 64 BIT -Q_MACH_TYPE="" -if [[ "$HOSTTYPE" == "x86_64" ]]; then - Q_MACH_TYPE="64" -else - Q_MACH_TYPE="32" -fi - -Q_SCRIPT_DIR=${QHOME}${Q_PATH_SEP} -Q_SHARED_LIB_DIR="${QHOME}${Q_PATH_SEP}${Q_HOST_TYPE}${Q_SHARED_LIB_DIR}${Q_MACH_TYPE}${Q_PATH_SEP}" - -# check destination directory exists -if [ ! -w "$Q_SCRIPT_DIR" ]; then - echo "ERROR: Directory '$Q_SCRIPT_DIR' does not exist" - exit 1 -fi -if [ ! -w "$Q_SHARED_LIB_DIR" ]; then - echo "ERROR: Directory '$Q_SHARED_LIB_DIR' does not exist" - exit 1 -fi -if [ ! -d q ]; then - echo "ERROR: Directory 'q' does not exist. Please run from release package" - exit 1 -fi -if [ ! -d lib ]; then - echo "ERROR: Directory 'lib' does not exist. Please run from release package" - exit 1 -fi - -echo "Copying q script to $Q_SCRIPT_DIR ..." -cp q/* $Q_SCRIPT_DIR -if [ $? -ne 0 ]; then - echo "ERROR: copy failed" - exit 1 -fi -echo "Copying shared lib to $Q_SHARED_LIB_DIR ..." -cp lib/* $Q_SHARED_LIB_DIR -if [ $? -ne 0 ]; then - echo "ERROR: copy failed" - exit 1 -fi - -echo "Install complete" -exit 0 \ No newline at end of file