Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented igraph #1196

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Implemented igraph #1196

wants to merge 3 commits into from

Conversation

carloscbl
Copy link

@carloscbl carloscbl commented Jul 3, 2024

It need to use ENV
IGRAPH_CMAKE_EXTRA_ARGS='-DF2C_EXTERNAL_ARITH_HEADER=/home/cbernal/Downloads/android64_x86_64_arm64.h -DIEEE754_DOUBLE_ENDIANNESS_MATCHES=ON'

During the execution of build-wheel.py

And needs to use api-level 24

IGRAPH_CMAKE_EXTRA_ARGS='-DF2C_EXTERNAL_ARITH_HEADER=/home/cbernal/Downloads/android64_x86_64_arm64.h -DIEEE754_DOUBLE_ENDIANNESS_MATCHES=ON' ./build-wheel.py -v --api-level 24 --python 3.11 --abi arm64-v8a igraph

@szhorvat
Copy link

szhorvat commented Jul 5, 2024

If it helps generalize the PR, I believe the same arith.h is also appropriate for aarch64, not just for x86_64.

@mhsmith mhsmith marked this pull request as draft July 8, 2024 18:32
@mhsmith
Copy link
Member

mhsmith commented Jul 8, 2024

Thanks very much. To merge this PR, we'll need to fix F2C_EXTERNAL_ARITH_HEADER so it doesn't contain user-specific paths. Maybe this can be done by patching the package's build script to set the variable, rather than setting it in meta.yaml.

We'll also need a test script to verify that the package works. Please do the following:

  • Follow the instructions in "Testing a package" in the README.
  • Push your test script to this PR.
  • Post a comment saying which Python versions and ABIs you have tested.

@@ -617,7 +617,8 @@ def env_vars(self):
})

for var in self.meta["build"]["script_env"]:
key, value = var.split("=")
key, value = var.split("=",1)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was failing because of finding
IGRAPH_CMAKE_EXTRA_ARGS=-DF2C_EXTERNAL_ARITH_HEADER=../../../../../../../android64_x86_64_arm64.h -DIEEE754_DOUBLE_ENDIANNESS_MATCHES=ON

Multiple "=", now will only take the first segment as key and the rest as value as is

@carloscbl
Copy link
Author

carloscbl commented Jul 10, 2024

tested in Python 3.11, and ABIs:

def abiFilters_ = ["x86_64", "arm64-v8a"]
chaquopy {
    defaultConfig {
        version = "3.11"
        pip {
            options "--find-links", rootProject.projectDir.toString() + "/childmodule/wheels/igraph"
            install("igraph==0.11.5")
            install("numpy==1.26.2")
            install("requests==2.24.0")
            install("dateparser==1.2.0")
            install("Babel==2.10.3")
            install("python_dateutil==2.8.2")
            install("pytz==2024.1")
            install("langdetect==1.0.9")
            install("tzlocal==5.2")
            install("regex")
            install("coloredlogs")
            install("logging_json")
            install("tzdata")
            ...

project.ext {
        COMPILE_SDK_VERSION = 33
        MIN_SDK_VERSION = 26
        TARGET_SDK_VERSION = 33
        BUILD_TOOLS_VERSION = '33.0.0'

Tested on ubuntu with pixel 4 API 31 emulator x86_64
and
Tested on physical Samsung S22 ultra SM-S908B/DS exynos arm64

By tested i mean i have a script the uses all that packages, and is working

@carloscbl carloscbl changed the title WIP Implemented igraph to be used on android x86 64 Implemented igraph Jul 22, 2024
Copy link

@szhorvat szhorvat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

python-igraph 0.11.6 is out now, you could consider packaging that version instead.

build:
number: 0
script_env:
# paralelize compilation

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# paralelize compilation
# parallelize compilation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

python-igraph
3 participants