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

sim: add xyce #263

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -730,3 +730,13 @@ jobs:
steps:
- uses: actions/checkout@v3
- uses: ./ci

#65
xyce-linux:
runs-on: "ubuntu-20.04"
env:
PACKAGE: "sim/xyce"
Comment on lines +737 to +738
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
env:
PACKAGE: "sim/xyce"
env:
CONDA_BUILD_PREPARE_REV: "aj-fix-describe"
PACKAGE: "sim/xyce"

Please set this variable to use conda-build-prepare WIP branch that is able to handle "misnamed" tags for now to build Xyce until hdl/conda-build-prepare#1 gets fixed. I've just pushed a commit to conda-eda's master` to enable specifying it so please first rebase this PR on top of it.

OS_NAME: "linux"
steps:
- uses: actions/checkout@v3
- uses: ./ci
38 changes: 38 additions & 0 deletions sim/xyce/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/bash


# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -ex

cd $SRC_DIR/blas
cmake -B build -DCMAKE_INSTALL_PREFIX=$PREFIX .
cmake --build build -j $CPU_COUNT --target install

cd $SRC_DIR/lapack
cmake -B build -DCMAKE_INSTALL_PREFIX=$PREFIX .
cmake --build build -j $CPU_COUNT --target install

cd $SRC_DIR/amd
cmake -B build -DSuiteSparsePath=. -DCMAKE_INSTALL_PREFIX=$PREFIX $SRC_DIR/cmake/trilinos/AMD
cmake --build build -j $CPU_COUNT --target install

cd $SRC_DIR/Trilinos
cmake -B build -DCMAKE_INSTALL_PREFIX=$PREFIX -C $SRC_DIR/cmake/trilinos/trilinos-config.cmake .
cmake --build build -j $CPU_COUNT --target install

cd $SRC_DIR
cmake -B build -DCMAKE_FIND_ROOT_PATH="$BUILD_PREFIX;$PREFIX" -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=ONLY -DCMAKE_INSTALL_PREFIX=$PREFIX .
cmake --build build -j $CPU_COUNT --target install
70 changes: 70 additions & 0 deletions sim/xyce/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Use `conda-build-prepare` before building for a better version string.
{% set version = '%s_%04i_%s'|format(GIT_DESCRIBE_TAG|replace('v', '')|replace('-', '')|default('0.X'), GIT_DESCRIBE_NUMBER|int, GIT_DESCRIBE_HASH|default('gUNKNOWN')) %}
{% set trilinos_version = '13-4-1' %}
{% set trilinos_md5 = '8f26e97d92a9d91affadc54896a0ec77' %}
{% set blas_version = '3.11.0' %}
{% set blas_md5 = '92418c9bc598e589d73044ec39518616' %}
{% set lapack_version = '3.11.0' %}
{% set lapack_md5 = '595b064fd448b161cd711fe346f498a7' %}
{% set amd_version = '6.0.2' %}
{% set amd_md5 = '628214a2d18ee4d3996fdc50b7fc9aef' %}
package:
name: xyce
version: {{ version }}

source:
- git_url: https://github.com/Xyce/Xyce.git
git_rev: master
- url: https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-{{ trilinos_version }}.tar.gz
md5: {{ trilinos_md5 }}
folder: Trilinos
- url: http://www.netlib.org/blas/blas-{{ blas_version }}.tgz
md5: {{ blas_md5 }}
folder: blas
- url: https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v{{ lapack_version }}.tar.gz
md5: {{ lapack_md5 }}
folder: lapack
- url: https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v{{ amd_version }}.tar.gz
md5: {{ amd_md5 }}
folder: amd

build:
# number: 202202031935
number: {{ environ.get('DATE_NUM') }}
# string: 20220203_1935
string: {{ environ.get('DATE_STR') }}
script_env:
- CI

requirements:
build:
- autoconf
- automake
- make
- cmake
- bison
- flex
- {{ compiler('cxx') }}
- {{ compiler('fortran') }}
host:
- libgfortran5
- libgfortran-ng

test:
commands:
- xyce --version

about:
home: https://xyce.sandia.gov/
license: GPL
license_family: GPL
license_file: LICENSE
summary: 'The Xyce™ Parallel Electronic Simulator'
description: |
Xyce (zīs, rhymes with “spice”) is an open source, SPICE-compatible, high-performance analog circuit simulator, capable of solving extremely large circuit problems by supporting large-scale parallel computing platforms. It also supports serial execution on all common desktop platforms, and small-scale parallel runs on Unix-like systems. In addition to analog electronic simulation, Xyce has also been used to investigate more general network systems, such as neural networks and power grids.
doc_url: https://xyce.sandia.gov/documentation/
dev_url: https://github.com/Xyce/Xyce

extra:
recipe-maintainers:
- proppy