Skip to content

Commit

Permalink
[Fix] Connect to Data Source window does not scale properly (Ubuntu) (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
lixun910 authored Aug 26, 2024
1 parent 2084f3c commit 3ce5d2c
Show file tree
Hide file tree
Showing 25 changed files with 1,475 additions and 1,375 deletions.
44 changes: 34 additions & 10 deletions .github/workflows/osx_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,24 @@ on:
jobs:
# This workflow contains a single job called "build"
osx_build:
# The type of runner that the job will run on
runs-on: macos-latest
# The type of runner that the job will run on, macos-13 is x86_64
runs-on: ${{ matrix.distro }}
if: ${{ !contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') }}

strategy:
fail-fast: true
matrix:
distro:
- 'macos-13'
- 'macos-14'
include:
- distro: 'macos-13'
pre: 'x86_64'
- distro: 'macos-14'
pre: 'arm64'
env:
GEODA_VER: '1.22.0'
GEODA_ARCH: ${{ matrix.pre }}

# Steps represent a sequence of tasks that will be executed as part of the job

Expand All @@ -42,40 +54,52 @@ jobs:
p12-file-base64: ${{ secrets.MACOS_CERTIFICATE }}
p12-password: ${{ secrets.MACOS_CERTIFICATE_PWD }}

- name: Setup Brew
- name: Install GDAL using Brew x86_64
if: ${{ matrix.pre == 'x86_64' }}
run: |
brew install boost@1.76
ln -s /usr/local/opt/boost@1.76 /usr/local/opt/boost
rm /usr/local/bin/2to3 || true
rm /usr/local/bin/idle3 || true
rm /usr/local/bin/pydoc3 || true
rm /usr/local/bin/python3 || true
rm /usr/local/bin/python3-config || true
brew install --force --overwrite --quiet gdal || true
- name: Install GDAL using Brew Arm64
if: ${{ matrix.pre == 'arm64' }}
run: |
arch
brew install gdal
sudo ln -s /opt/homebrew/opt/gdal /usr/local/opt/gdal
- uses: actions/cache@v3
id: cache
with:
path: |
BuildTools/macosx/libraries
BuildTools/macosx/temp
key: ${{ runner.os }}-deps-cache-${{ hashFiles('BuildTools/macosx/install.sh') }}
key: ${{ runner.os }}-${{ matrix.pre }}-deps-cache-${{ hashFiles('BuildTools/macosx/install.sh') }}

- if: steps.cache.outputs.cache-hit != 'true'
name: Build Dependencies
run: |
cd BuildTools/macosx
export GEODA_HOME=$PWD
export GEODA_ARCH=x86_64
export GEODA_ARCH=${{ env.GEODA_ARCH }}
./install.sh
- name: Build GeoDa
run: |
mkdir -p o
cd BuildTools/macosx
export GEODA_HOME=$PWD
export GEODA_ARCH=${{ env.GEODA_ARCH }}
cp ../../GeoDamake.macosx.opt ../../GeoDamake.opt
echo "find identity"
security find-identity -v
VER_MAJOR=$(grep version_major $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g')
VER_MINOR=$(grep version_minor $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g')
VER_BUILD=$(grep version_build $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g')
GEODA_VERSION=$VER_MAJOR.$VER_MINOR.$VER_BUILD
GEODA_VERSION=$VER_MAJOR.$VER_MINOR.$VER_BUILD-$GEODA_ARCH
echo $GEODA_VERSION
make -j$(sysctl -n hw.ncpu)
make app
Expand All @@ -86,5 +110,5 @@ jobs:
# Upload artifact
- uses: actions/upload-artifact@v3
with:
name: GeoDa-${{ env.GEODA_VER }}-MacOS
path: ${{ github.workspace }}/BuildTools/macosx/create-dmg/GeoDa${{ env.GEODA_VER }}-Installer.dmg
name: GeoDa-${{ env.GEODA_VER }}-${{ env.GEODA_ARCH }}-MacOS
path: ${{ github.workspace }}/BuildTools/macosx/create-dmg/GeoDa${{ env.GEODA_VER }}-${{ env.GEODA_ARCH }}-Installer.dmg
9 changes: 8 additions & 1 deletion .github/workflows/ubuntu_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,31 @@ jobs:
fail-fast: true
matrix:
distro:
- 'ubuntu-24.04'
- 'ubuntu-22.04'
- 'ubuntu-20.04'
include:
- distro: 'ubuntu-24.04'
pre: 'noble'
ldflags: '-lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkit2gtk-4.1 -lEGL -ljavascriptcoregtk-4.1'
- distro: 'ubuntu-22.04'
pre: 'jammy'
ldflags: '-lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkit2gtk-4.0 -lEGL -ljavascriptcoregtk-4.0'
- distro: 'ubuntu-20.04'
pre: 'focal'
ldflags: '-lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkit2gtk-4.0 -lEGL -ljavascriptcoregtk-4.0'

env:
platform: ${{ matrix.distro }}
GEODA_VER: '1.22.0'
TARGET_OS: ${{ matrix.pre }}
EXTRA_GEODA_LD_FLAGS: ${{ matrix.ldflags }}

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3

# Prepare
- name: Prepare on ${{ matrix.distro }}
run: |
chmod +x BuildTools/ubuntu/create_deps.sh
Expand Down Expand Up @@ -81,6 +87,7 @@ jobs:
export WORK_DIR=$PWD
export OS=${{ env.TARGET_OS }}
export VER=${{ env.GEODA_VER }}
export EXTRA_GEODA_LD_FLAGS='${{ env.EXTRA_GEODA_LD_FLAGS }}'
export APT="sudo apt-get"
cd BuildTools/ubuntu
./install.sh
Expand Down
15 changes: 7 additions & 8 deletions .github/workflows/windows_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,15 @@ jobs:
BuildTools/windows/temp
key: ${{ runner.os }}-${{ matrix.platform }}-deps-cache-${{ hashFiles('BuildTools/windows/deps.md') }}

# Install innosetup
- name: Install innosetup
uses: crazy-max/ghaction-chocolatey@v3
with:
args: install innosetup --no-progress

# Create Deps
- if: steps.cache.outputs.cache-hit != 'true'
name: Create Dependencies
name: Create Dependencies
shell: pwsh
run: |
$ErrorActionPreference = 'continue'
Expand Down Expand Up @@ -250,13 +256,6 @@ jobs:
{
msbuild.exe GeoDa.vs2019.sln /t:GeoDa /property:Configuration="Release" /m /p:Platform="x64"
}
#
# InnoSetup
#
Choco-Install -PackageName innosetup
#
# Binary
#
if($env:platform -eq "x86")
{
ISCC.exe /q installer\32bit\GeoDa.iss
Expand Down
14 changes: 13 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,17 @@
"typeinfo": "cpp",
"algorithm": "cpp"
},
"C_Cpp.default.compilerPath": "/usr/bin/clang++"
"C_Cpp.default.compilerPath": "/usr/bin/clang++",
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"**/temp": true,
"**/build": true,
"**/debug": true,
"**/libraries": true
}
}
6 changes: 3 additions & 3 deletions BuildTools/macosx/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,12 @@ build-geoda-mac:
cp /usr/local/opt/gdal/share/gdal/* build/GeoDa.app/Contents/Resources/gdaldata
cp libraries/lib/libwx_osx_cocoau-3.2.0.2.2.dylib build/GeoDa.app/Contents/Frameworks/libwx_osx_cocoau-3.2.dylib
cp libraries/lib/libwx_osx_cocoau_gl-3.2.0.2.2.dylib build/GeoDa.app/Contents/Frameworks/libwx_osx_cocoau_gl-3.2.dylib
cp /usr/local/opt/gdal/lib/libgdal.34.dylib build/GeoDa.app/Contents/Frameworks
cp /usr/local/opt/gdal/lib/libgdal.35.dylib build/GeoDa.app/Contents/Frameworks
install_name_tool -id "GeoDa" build/GeoDa.app/Contents/MacOS/GeoDa
install_name_tool -change "$(GEODA_HOME)/libraries/lib/libwx_osx_cocoau_gl-3.2.dylib" "@executable_path/../Frameworks/libwx_osx_cocoau_gl-3.2.dylib" build/GeoDa.app/Contents/MacOS/GeoDa
install_name_tool -change "$(GEODA_HOME)/libraries/lib/libwx_osx_cocoau-3.2.dylib" "@executable_path/../Frameworks/libwx_osx_cocoau-3.2.dylib" build/GeoDa.app/Contents/MacOS/GeoDa
install_name_tool -change "/usr/local/opt/gdal/lib/libgdal.34.dylib" "@executable_path/../Frameworks/libgdal.34.dylib" build/GeoDa.app/Contents/MacOS/GeoDa
install_name_tool -change "/opt/homebrew/opt/gdal/lib/libgdal.34.dylib" "@executable_path/../Frameworks/libgdal.34.dylib" build/GeoDa.app/Contents/MacOS/GeoDa
install_name_tool -change "/usr/local/opt/gdal/lib/libgdal.35.dylib" "@executable_path/../Frameworks/libgdal.35.dylib" build/GeoDa.app/Contents/MacOS/GeoDa
install_name_tool -change "/opt/homebrew/opt/gdal/lib/libgdal.35.dylib" "@executable_path/../Frameworks/libgdal.35.dylib" build/GeoDa.app/Contents/MacOS/GeoDa
python3 install_name.py $(GEODA_HOME)/build/GeoDa.app/Contents/Frameworks "Developer ID Application: Geodapress LLC (26M5NG43GP)"
install_name_tool -change "@executable_path/../Frameworks/libwx_osx_cocoau-3.2.0.2.2.dylib" "@executable_path/../Frameworks/libwx_osx_cocoau-3.2.dylib" build/GeoDa.app/Contents/Frameworks/libwx_osx_cocoau_gl-3.2.dylib
codesign -f --timestamp -o runtime -s "Developer ID Application: Geodapress LLC (26M5NG43GP)" build/GeoDa.app/Contents/Frameworks/libwx_osx_cocoau_gl-3.2.dylib
Expand Down
2 changes: 1 addition & 1 deletion BuildTools/macosx/build.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/zsh
#############################################################################
# ./build.sh
# ./build.sh [CPU]
Expand Down
5 changes: 2 additions & 3 deletions BuildTools/macosx/dep/CLAPACK-3.2.1/F2CLIBS/libf2c/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ include $(TOPDIR)/make.inc

# compile, then strip unnecessary symbols
.c.o:
$(CC) -m64 -c -DSkip_f2c_Undefs $(CFLAGS) $*.c
#ld -arch x86_64 -macosx_version_min 10.6 -syslibroot $GDA_WITH_SYSROOT -r -x -o $*.xxx $*.o
$(CC) -m64 -arch $(GEODA_ARCH) -c -DSkip_f2c_Undefs $(CFLAGS) $*.c
ld -arch $(GEODA_ARCH) -r -x -o $*.xxx $*.o
mv $*.xxx $*.o
## Under Solaris (and other systems that do not understand ld -x),
Expand Down Expand Up @@ -185,7 +184,7 @@ xwsne.o: fmt.h
arith.h: arithchk.c
$(CC) $(CFLAGS) -DNO_FPINIT arithchk.c -lm ||\
$(CC) -DNO_LONG_LONG $(CFLAGS) -DNO_FPINIT arithchk.c -lm
./a.out >arith.h
# ./a.out >arith.h
rm -f a.out arithchk.o

check:
Expand Down
9 changes: 9 additions & 0 deletions BuildTools/macosx/dep/CLAPACK-3.2.1/F2CLIBS/libf2c/arith.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#define IEEE_8087
#define Arith_Kind_ASL 1
#define Long int
#define Intcast (int)(long)
#define Double_Align
#define X64_bit_pointers
#define NANCHECK
#define QNaN0 0x0
#define QNaN1 0x7ff80000
4 changes: 2 additions & 2 deletions BuildTools/macosx/dep/CLAPACK-3.2.1/make.inc
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ PLAT =
CC = gcc
# if no wrapping of the blas library is needed, uncomment next line
#CC = gcc -DNO_BLAS_WRAP
CFLAGS = -O3 -m64 -isysroot $GDA_WITH_SYSROOT -mmacosx-version-min=10.10 -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/INCLUDE -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/
CFLAGS = -O3 -m64 -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/INCLUDE -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/
CFLAGS = -O3 -m64 -arch $(GEODA_ARCH) -isysroot $GDA_WITH_SYSROOT -mmacosx-version-min=10.10 -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/INCLUDE -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/
CFLAGS = -O3 -m64 -arch $(GEODA_ARCH) -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/INCLUDE -I$(GEODA_HOME)/temp/CLAPACK-3.2.1/
LOADER = gcc
LOADOPTS = -m64 -arch $(GEODA_ARCH) -isysroot $GDA_WITH_SYSROOT -mmacosx-version-min=10.10
LOADOPTS = -m64 -arch $(GEODA_ARCH)
Expand Down
2 changes: 1 addition & 1 deletion BuildTools/macosx/dep/json_spirit/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

add_definitions(-DJSON_SPIRIT_VALUE_ENABLED)
SET(CMAKE_INCLUDE_PATH /usr/local/opt/boost/include ${CMAKE_INCLUDE_PATH})
SET(CMAKE_INCLUDE_PATH /Users/runner/work/geoda/geoda/BuildTools/macosx/libraries/include/boost ${CMAKE_INCLUDE_PATH})

PROJECT(json_spirit)
SUBDIRS(json_spirit json_demo json_headers_only_demo json_map_demo json_test)
Expand Down
102 changes: 47 additions & 55 deletions BuildTools/macosx/install.sh
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
#!/bin/sh
#!/bin/zsh

# stops the execution of a script if a command or pipeline has an error
set -e

export GEODA_HOME=$PWD
echo $GEODA_HOME
CPUS=`sysctl -n hw.ncpu`

# Install boost 1.75
#brew install boost@1.76
#ln -s /usr/local/opt/boost@1.76 /usr/local/opt/boost
echo $GEODA_ARCH
# check if $GEODA_HOME and $GEODA_ARCH are set
if [ -z "$GEODA_HOME" ]; then
echo "Please set GEODA_HOME environment variable"
exit
fi
if [ -z "$GEODA_ARCH" ]; then
echo "Please set GEODA_ARCH environment variable"
exit
fi

# Install libgdal 3.6
#brew install gdal
CPUS=`sysctl -n hw.ncpu`

cd $GEODA_HOME
mkdir -p temp
Expand All @@ -23,16 +27,39 @@ mkdir -p ../../o

cd temp

# FIX for libgdal on Monterey using sqlite 3.30.1
# cd temp
# curl -L -O https://sqlite.org/2019/sqlite-autoconf-3300100.tar.gz
# tar -xvf sqlite-autoconf-3300100.tar.gz
# cd sqlite-autoconf-3300100
# ./configure --enable-readline CPPFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA=1" --prefix=/usr/local/opt/sqlite
# make
# make install
# cd ..
# cd ..
# Build CLAPACK
if ! [ -f "clapack.tgz" ]; then
curl -L -O https://github.com/GeoDaCenter/software/releases/download/v2000/clapack.tgz
tar -xf clapack.tgz
fi
if ! [ -f "CLAPACK-3.2.1/libf2c.a" ]; then
cp -rf ../dep/CLAPACK-3.2.1 .
cd CLAPACK-3.2.1
make f2clib
make blaslib
cd INSTALL
make
cd ..
cd SRC
make
cd ..
cp F2CLIBS/libf2c.a .
cd ..
fi

# Build Boost 1.76
if ! [ -f "boost_1_76_0.tar.bz2" ]; then
curl -L -O https://archives.boost.io/release/1.76.0/source/boost_1_76_0.tar.gz
tar -xf boost_1_76_0.tar.gz
fi
if ! [ -f "../libraries/lib/libboost_thread.a" ]; then
cd boost_1_76_0
./bootstrap.sh
./b2 --with-thread --with-date_time --with-chrono --with-system link=static threading=multi stage
cp -R stage/lib/* ../../libraries/lib/.
cp -R boost ../../libraries/include/.
cd ..
fi

# Build wxWidgets 3.2.4
if ! [ -f "wxWidgets-3.2.4.tar.bz2" ]; then
Expand All @@ -57,33 +84,13 @@ if ! [ -f "../libraries/lib/libjson_spirit.a" ]; then
cp ../../dep/json_spirit/CMakeLists.txt .
mkdir -p bld
cd bld
cmake -DBoost_NO_BOOST_CMAKE=TRUE -DBOOST_ROOT:PATHNAME=/usr/local/opt ..
cmake -DBoost_NO_BOOST_CMAKE=TRUE -DBOOST_ROOT:PATHNAME=$GEODA_HOME/libraries/include ..
make -j $CPUS
cp -R ../json_spirit ../../../libraries/include/.
cp json_spirit/libjson_spirit.a ../../../libraries/lib/.
cd ../..
fi

# Build CLAPACK
if ! [ -f "clapack.tgz" ]; then
curl -L -O https://github.com/GeoDaCenter/software/releases/download/v2000/clapack.tgz
tar -xf clapack.tgz
fi
if ! [ -f "CLAPACK-3.2.1/libf2c.a" ]; then
cp -rf ../dep/CLAPACK-3.2.1 .
cd CLAPACK-3.2.1
make -j $CPUS f2clib
make -j $CPUS blaslib
cd INSTALL
make -j $CPUS
cd ..
cd SRC
make -j $CPUS
cd ..
cp F2CLIBS/libf2c.a .
cd ..
fi

# Build Eigen3 and Spectra
if ! [ -f "eigen3.zip" ]; then
curl -L -O https://github.com/GeoDaCenter/software/releases/download/v2000/eigen3.zip
Expand All @@ -95,19 +102,4 @@ if ! [ -f "v0.8.0.zip" ]; then
mv spectra-0.8.0 spectra
fi

cd ..
# Build GeoDa
# cp ../../GeoDamake.macosx.opt ../../GeoDamake.opt
# make -j $CPUS
# make app

# # Create dmg
# VER_MAJOR=$(grep version_major $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g')
# VER_MINOR=$(grep version_minor $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g')
# VER_BUILD=$(grep version_build $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g')
# GEODA_VERSION=$VER_MAJOR.$VER_MINOR.$VER_BUILD
# echo $GEODA_VERSION

# cd create-dmg
# ./geoda.sh $GEODA_VERSION
# codesign --timestamp -s "Developer ID Application: Geodapress LLC (26M5NG43GP)" -i edu.uchicago.spatial GeoDa$GEODA_VERSION-Installer.dmg
cd ..
Loading

0 comments on commit 3ce5d2c

Please sign in to comment.