diff --git a/.github/workflows/pixi-build.yml b/.github/workflows/pixi-build.yml new file mode 100644 index 0000000..fc117fb --- /dev/null +++ b/.github/workflows/pixi-build.yml @@ -0,0 +1,20 @@ +name: Pixi Build CI + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the code + uses: actions/checkout@v4 + + - name: Set up Pixi + uses: prefix-dev/setup-pixi@v0.8.9 + + # Build + - name: Build + run: pixi build diff --git a/CMakeLists.txt b/CMakeLists.txt index e4b337d..b35052e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,12 @@ project(MESS C CXX) cmake_minimum_required(VERSION 3.16) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") + set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") # Options for automatic dependency handling @@ -421,11 +423,12 @@ target_link_libraries(messsym ${CMAKE_DL_LIBS} ) -install(TARGETS mess DESTINATION bin) -install(TARGETS mess-v2 DESTINATION bin) -install(TARGETS messpf DESTINATION bin) -install(TARGETS messabs DESTINATION bin) -install(TARGETS messsym DESTINATION bin) +install(TARGETS mess DESTINATION ${BINDIR}) +install(TARGETS mess-v2 DESTINATION ${BINDIR}) +install(TARGETS messpf DESTINATION ${BINDIR}) +install(TARGETS messabs DESTINATION ${BINDIR}) +install(TARGETS messsym DESTINATION ${BINDIR}) +install(TARGETS messlibs LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) # Create a direct wrapper for missing SLATEC functions file(WRITE ${CMAKE_BINARY_DIR}/slatec_wrapper.f " diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 0000000..65a8e25 --- /dev/null +++ b/pixi.toml @@ -0,0 +1,33 @@ +[workspace] +channels = ["conda-forge", "Auto-Mech"] +platforms = ["linux-64"] +preview = ["pixi-build"] + +[dependencies] +mess = { path = "." } + +[package] +name = "mess" +version = "2.10.6" + +[package.build] +backend = { name = "pixi-build-cmake", version = "0.3.*" } + +[package.build.config] +extra-args = [ + "-DCMAKE_BUILD_TYPE=Release", + "-DBUILD_SHARED_LIBS=ON" +] + +[package.build-dependencies] +fortran-compiler = "*" + +[package.host-dependencies] +openblas = "*" +openmp = "*" +gsl = "*" +qd = "*" +slatec = "*" + +[package.run-dependencies] +slatec = "*"