-
Notifications
You must be signed in to change notification settings - Fork 64
Uw2 pixi #726
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
Uw2 pixi #726
Changes from all commits
a285e79
a7ec605
76c2c21
af6ec6b
ba5a9c7
dac2f49
0c1f549
33128f8
64da945
4c4fa94
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| [workspace] | ||
| authors = ["Julian Giordani <julian.giordani@sydney.edu.au>"] | ||
| channels = [ | ||
| "conda-forge", | ||
| "https://prefix.dev/pixi-build-backends" | ||
| ] | ||
| name = "uw2-pixi" | ||
| platforms = ["linux-64", "osx-arm64"] | ||
|
|
||
| [tasks] | ||
| build = "pip install ." | ||
| test = "pytest ./docs/pytests/tests.py ./docs/pytests/test_examples.py ./docs/pytests/test_user_guide.py" | ||
|
|
||
| [dependencies] | ||
| petsc = "3.21.*" | ||
| python = "3.11.*" | ||
| numpy = "<2" | ||
| pint = ">=0.24.4,<0.25" | ||
| cmake = ">=4.0.3,<5" | ||
| swig = ">=4" | ||
| pkg-config = ">=0.29.2,<0.30" | ||
| compilers = ">=1.10.0,<2" | ||
| scipy = ">=1.16.0,<2" | ||
| mpi4py = ">=4.1.0,<5" | ||
| libxml2 = ">=2.13.8,<3" | ||
| ninja = ">=1.13.0,<2" | ||
| mesalib = ">=25.0.5,<26" | ||
| mpich = ">=4.3.1,<5" | ||
| hdf5 = { version = "*", build = "mpi*" } | ||
| h5py = { version = "*", build = "mpi*" } | ||
| pip = ">=25.1.1,<26" | ||
| pytest = ">=8.4.1,<9" | ||
| nbmake = ">=1.5.5,<2" | ||
| jupytext = ">=1.17.2,<2" | ||
| jupyterlab = ">=4.4.4,<5" | ||
| matplotlib = ">=3.10.5,<4" | ||
| #[host-dependencies] | ||
| c-compiler = "*" | ||
| cxx-compiler = "*" | ||
| make = "*" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| ## Pixi notes | ||
|
|
||
| Pixi is a new package manager for building Underworld2. It uses `conda-forge` and `PyPI` under the source packages. It installs them in consistent reproducible environments much like `conda`, but with the addedd benefit of lock files for deterministic builds. | ||
|
|
||
| ### Basic commands | ||
|
|
||
| `pixi install` to install an environment of uw2 | ||
| `pixi run build` to build uw2 in the environment | ||
| `pixi run test` to run the uw2 tests in the pixi environment | ||
| `pixi shell` (in the same directory as `pixi.toml`) to enter into the environment. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| __version__ = "2.17.0" | ||
| __version__ = "2.17.1" |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,14 +1,7 @@ | ||||||
|
|
||||||
| # SWIG | ||||||
| find_package(SWIG REQUIRED) | ||||||
| find_package (Python COMPONENTS Interpreter Development) | ||||||
| # load swig's cmake module | ||||||
| include(${SWIG_USE_FILE}) | ||||||
| include_directories(${Python3_INCLUDE_DIRS}) | ||||||
|
|
||||||
| include_directories(../.) | ||||||
| include_directories(${PETSc_INCLUDE_DIRS}) | ||||||
| include_directories(${LIBXML2_INCLUDE_DIR}) | ||||||
| include_directories(${Python3_NumPy_INCLUDE_DIRS}) | ||||||
|
|
||||||
| SET(UW_LIBRARIES | ||||||
| Underworld | ||||||
|
|
@@ -25,6 +18,7 @@ if(NOT APPLE) | |||||
| set(CMAKE_INSTALL_RPATH "\$ORIGIN") | ||||||
| else() | ||||||
| message(STATUS ">>> Apple") | ||||||
| set(CMAKE_MACOSX_RPATH TRUE) | ||||||
| set(CMAKE_INSTALL_RPATH "@loader_path") | ||||||
| endif() | ||||||
|
|
||||||
|
|
@@ -35,89 +29,98 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) | |||||
|
|
||||||
| SET(CMAKE_SWIG_FLAGS "-v" "-Wextra" "-O" "-c++" "-DSWIG_DO_NOT_WRAP") | ||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(Function.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE Function.i PROPERTY SWIG_MODULE_NAME Function) | ||||||
| SWIG_ADD_LIBRARY(Function TYPE SHARED LANGUAGE python SOURCES Function.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_Function_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(Function PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(Function PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(c_arrays.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE c_arrays.i PROPERTY SWIG_MODULE_NAME c_arrays) | ||||||
| SWIG_ADD_LIBRARY(c_arrays TYPE SHARED LANGUAGE python SOURCES c_arrays.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_c_arrays_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(c_arrays PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(c_arrays PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(c_pointers.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE c_pointers.i PROPERTY SWIG_MODULE_NAME c_pointers) | ||||||
| SWIG_ADD_LIBRARY(c_pointers TYPE SHARED LANGUAGE python SOURCES c_pointers.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_c_pointers_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(c_pointers PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(c_pointers PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(gLucifer.i PROPERTIES CPLUSPLUS ON) | ||||||
| message("Swig diagnostics:") | ||||||
| get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) | ||||||
| foreach(dir ${dirs}) | ||||||
| message(STATUS "dir='${dir}'") | ||||||
| endforeach() | ||||||
| message(STATUS "UW_LIBRARIES=${UW_LIBRARIES}") | ||||||
| message(STATUS "PETSc_LIBRARIES=${PETSc_LIBRARIES}") | ||||||
| message("End Swig diagnostics:") | ||||||
|
|
||||||
| set_source_files_properties(Function.i PROPERTIES | ||||||
| CPLUSPLUS ON | ||||||
| SWIG_MODULE_NAME Function) | ||||||
| # This create swig module target, SWIG_MODULE_Function_REAL_NAME with CMP0078 != NEW | ||||||
| swig_add_library(Function | ||||||
| TYPE SHARED | ||||||
| LANGUAGE python | ||||||
| SOURCES Function.i | ||||||
| ) | ||||||
| set_target_properties(${SWIG_MODULE_Function_REAL_NAME} PROPERTIES | ||||||
| SUFFIX ".so" ) | ||||||
|
|
||||||
| target_link_libraries(${SWIG_MODULE_Function_REAL_NAME} | ||||||
| PRIVATE ${UW_LIBRARIES} | ||||||
| PRIVATE ${PETSc_LIBRARIES}) | ||||||
|
|
||||||
| set_source_files_properties(c_arrays.i PROPERTIES | ||||||
| CPLUSPLUS ON | ||||||
| SWIG_MODULE_NAME c_arrays) | ||||||
| swig_add_library(c_arrays TYPE SHARED LANGUAGE python SOURCES c_arrays.i) | ||||||
| set_target_properties(${SWIG_MODULE_c_arrays_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_c_arrays_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| set_source_files_properties(c_pointers.i PROPERTIES | ||||||
| CPLUSPLUS ON | ||||||
| SWIG_MODULE_NAME c_pointers) | ||||||
| swig_add_library(c_pointers TYPE SHARED LANGUAGE python SOURCES c_pointers.i) | ||||||
| set_target_properties(${SWIG_MODULE_c_pointers_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_c_pointers_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
|
||||||
|
|
||||||
| set_source_files_properties(gLucifer.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE gLucifer.i PROPERTY SWIG_MODULE_NAME gLucifer) | ||||||
| SWIG_ADD_LIBRARY(gLucifer TYPE SHARED LANGUAGE python SOURCES gLucifer.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_gLucifer_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(gLucifer PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(gLucifer PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
| swig_add_library(gLucifer TYPE SHARED LANGUAGE python SOURCES gLucifer.i) | ||||||
| set_target_properties(${SWIG_MODULE_gLucifer_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_gLucifer_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(petsc.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_source_files_properties(petsc.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE petsc.i PROPERTY SWIG_MODULE_NAME petsc) | ||||||
| SWIG_ADD_LIBRARY(petsc TYPE SHARED LANGUAGE python SOURCES petsc.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_petsc_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(petsc PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(petsc PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
| swig_add_library(petsc TYPE SHARED LANGUAGE python SOURCES petsc.i) | ||||||
| set_target_properties(${SWIG_MODULE_petsc_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_petsc_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(PICellerator.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_source_files_properties(PICellerator.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE PICellerator.i PROPERTY SWIG_MODULE_NAME PICellerator) | ||||||
| SWIG_ADD_LIBRARY(PICellerator TYPE SHARED LANGUAGE python SOURCES PICellerator.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_PICellerator_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(PICellerator PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(PICellerator PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
| swig_add_library(PICellerator TYPE SHARED LANGUAGE python SOURCES PICellerator.i) | ||||||
| set_target_properties(${SWIG_MODULE_PICellerator_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_PICellerator_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(Solvers.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_source_files_properties(Solvers.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE Solvers.i PROPERTY SWIG_MODULE_NAME Solvers) | ||||||
| SWIG_ADD_LIBRARY(Solvers TYPE SHARED LANGUAGE python SOURCES Solvers.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_Solvers_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(Solvers PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(Solvers PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
| swig_add_library(Solvers TYPE SHARED LANGUAGE python SOURCES Solvers.i) | ||||||
| set_target_properties(${SWIG_MODULE_Solvers_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_Solvers_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(StgDomain.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_source_files_properties(StgDomain.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE StgDomain.i PROPERTY SWIG_MODULE_NAME StgDomain) | ||||||
| SWIG_ADD_LIBRARY(StgDomain TYPE SHARED LANGUAGE python SOURCES StgDomain.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_StgDomain_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(StgDomain PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(StgDomain PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
| swig_add_library(StgDomain TYPE SHARED LANGUAGE python SOURCES StgDomain.i) | ||||||
| set_target_properties(${SWIG_MODULE_StgDomain_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_StgDomain_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(StGermain.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_source_files_properties(StGermain.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE StGermain.i PROPERTY SWIG_MODULE_NAME StGermain) | ||||||
| SWIG_ADD_LIBRARY(StGermain TYPE SHARED LANGUAGE python SOURCES StGermain.i) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_StGermain_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(StGermain PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(StGermain PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
| swig_add_library(StGermain TYPE SHARED LANGUAGE python SOURCES StGermain.i) | ||||||
| set_target_properties(${SWIG_MODULE_StGermain_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_StGermain_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| SET_SOURCE_FILES_PROPERTIES(StGermain_Tools.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_source_files_properties(StGermain_Tools.i PROPERTIES CPLUSPLUS ON) | ||||||
| set_property(SOURCE StGermain_Tools.i PROPERTY SWIG_MODULE_NAME StGermain_Tools) | ||||||
| SWIG_ADD_LIBRARY(StGermain_Tools TYPE SHARED LANGUAGE python SOURCES StGermain_Tools.i StGermain_Tools.c) | ||||||
| SET_TARGET_PROPERTIES(${SWIG_MODULE_StGermain_Tools_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| SWIG_LINK_LIBRARIES(StGermain_Tools PRIVATE ${UW_LIBRARIES}) | ||||||
| SWIG_LINK_LIBRARIES(StGermain_Tools PRIVATE ${PETSc_LINK_LIBRARIES}) | ||||||
| swig_add_library(StGermain_Tools TYPE SHARED LANGUAGE python SOURCES StGermain_Tools.i StGermain_Tools.c) | ||||||
| set_target_properties(${SWIG_MODULE_StGermain_Tools_REAL_NAME} PROPERTIES SUFFIX ".so") | ||||||
| target_link_libraries(${SWIG_MODULE_StGermain_Tools_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | ||||||
|
||||||
| target_link_libraries(${SWIG_MODULE_StGermain_Tools_REAL_NAME} PRIVATE ${UW_LIBRARIES} PRIVATE ${PETSc_LIBRARIES}) | |
| target_link_libraries(${SWIG_MODULE_StGermain_Tools_REAL_NAME} PRIVATE ${UW_LIBRARIES} ${PETSc_LIBRARIES}) |
julesghub marked this conversation as resolved.
Show resolved
Hide resolved
Copilot
AI
Nov 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate PRIVATE keyword in target_link_libraries. The call should be target_link_libraries(${SWIG_MODULE_Underworld_REAL_NAME} PRIVATE ${UW_LIBRARIES} ${PETSc_LIBRARIES}) with only one PRIVATE keyword at the beginning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in "addedd" - should be "added".