diff --git a/.travis.yml b/.travis.yml new file mode 100755 index 0000000..5c8c70a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,125 @@ +#!/bin/bash +############################################################################### +# Copyright (c) 2015-2017, Lawrence Livermore National Security, LLC. +# +# Produced at the Lawrence Livermore National Laboratory +# +# LLNL-CODE-716457 +# +# All rights reserved. +# +# This file is part of Strawman. +# +# For details, see: http://software.llnl.gov/strawman/. +# +# Please also read strawman/LICENSE +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the disclaimer below. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the disclaimer (as noted below) in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of the LLNS/LLNL nor the names of its contributors may +# be used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, +# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################### +sudo: false + +language: cpp +compiler: + - gcc +env: + global: + - COMPILER_CC=gcc-5 + - COMPILER_CXX=g++-5 + - COMPILER_FC=gfortran-5 + matrix: + # we want to test both static and shared + - BUILD_SHARED_LIBS=ON + - BUILD_SHARED_LIBS=OFF +addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - binutils + - gcc-5 + - g++-5 + - gfortran-5 +install: + # none +script: + - which g++ + - g++ --version + - export CC=${COMPILER_CC} + - export CXX=${COMPILER_CXX} + - export FC=${COMPILER_FC} + - ${CC} --version + - cd $TRAVIS_BUILD_DIR + # build deps using uberenv + - python scripts/uberenv/uberenv.py --spec %gcc@5+mpich + # create out-of-source build dir + - mkdir travis-debug-build + - cd travis-debug-build + # cmake options + # build type + - CMAKE_OPTS="-DCMAKE_BUILD_TYPE=Debug" + # shared or static libs + - CMAKE_OPTS="${CMAKE_OPTS} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}" + # install path + - CMAKE_OPTS="${CMAKE_OPTS} -DCMAKE_INSTALL_PREFIX=../travis-debug-install" + # make sure cmake is in our path + - export CMAKE_BIN_DIR=`ls -d ${TRAVIS_BUILD_DIR}/uberenv_libs/spack/opt/spack/*/*/cmake*/bin` + - export PATH=${CMAKE_BIN_DIR}:$PATH + - echo $PATH + - which cmake + - cmake --version + - export HOST_CONFIG=`ls ../uberenv_libs/*.cmake` + - cmake ${CMAKE_OPTS} -C ${HOST_CONFIG} ../src + # build, test, and install + - make + - env CTEST_OUTPUT_ON_FAILURE=1 make test + - make install + # test our examples that demo using an installed strawman + - export CONDUIT_DIR=`ls -d ${TRAVIS_BUILD_DIR}/uberenv_libs/spack/opt/spack/*/*/conduit*` + - export STRAWMAN_DIR=${TRAVIS_BUILD_DIR}/travis-debug-install + # using with cmake example + - cd ${TRAVIS_BUILD_DIR}/src/examples/using-with-cmake + - mkdir build + - cd build + - cmake -DSTRAWMAN_DIR=${STRAWMAN_DIR} -DCONDUIT_DIR=${CONDUIT_DIR} ../ + - make + - ./example + # using with make example (still needs work for static builds) + #- cd ${TRAVIS_BUILD_DIR}/src/examples/using-with-make + #- make + #- env LD_LIBRARY_PATH=${STRAWMAN_DIR}/lib/:${CONDUIT_DIR}/lib/ ./example + +#cache: +# directories: +# - ${TRAVIS_BUILD_DIR}/uberenv_libs +notifications: + email: + recipients: + - cyrush@llnl.gov + on_success: always + on_failure: always diff --git a/README.md b/README.md index 9c46b5f..8437ae2 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ License Strawman is released under a BSD-style license - for detailed license info, refer to: -http://software.llnl.gov/strawman/licenses.html +http://software.llnl.gov/strawman/Licenses.html or the following files in the Strawman source tree: - [LICENSE](/LICENSE) diff --git a/scripts/uberenv/packages/osmesa/MesaLib-7.5.2-OSMesa.tar.gz b/scripts/uberenv/packages/osmesa/MesaLib-7.5.2-OSMesa.tar.gz new file mode 100755 index 0000000..001b8ea Binary files /dev/null and b/scripts/uberenv/packages/osmesa/MesaLib-7.5.2-OSMesa.tar.gz differ diff --git a/scripts/uberenv/packages/tbb/package.py b/scripts/uberenv/packages/tbb/package.py index 00938b2..eb6a232 100644 --- a/scripts/uberenv/packages/tbb/package.py +++ b/scripts/uberenv/packages/tbb/package.py @@ -65,6 +65,8 @@ class Tbb(Package): version('4.4.3', '9d8a4cdf43496f1b3f7c473a5248e5cc') + patch("tbb_rtm_key.patch",level=0) + def url_for_version(self, version): tbb_tar_path = os.path.abspath(join_path(os.path.dirname(__file__))) tbb_tar_path = join_path(tbb_tar_path,"tbb44_20160128oss_src.tgz") @@ -111,7 +113,7 @@ def install(self, spec, prefix): mkdirp(prefix) - mkdirp(prefix.lib) + mkdirp(prefix.lib) # # tbb does not have a configure script or make install target @@ -147,5 +149,4 @@ def install(self, spec, prefix): install(f, prefix.lib) - diff --git a/scripts/uberenv/packages/tbb/tbb_rtm_key.patch b/scripts/uberenv/packages/tbb/tbb_rtm_key.patch new file mode 100644 index 0000000..f1a42fb --- /dev/null +++ b/scripts/uberenv/packages/tbb/tbb_rtm_key.patch @@ -0,0 +1,23 @@ +*** build/linux.gcc.inc.orig 2017-01-10 16:54:01.000000000 -0800 +--- build/linux.gcc.inc 2017-01-10 16:54:04.000000000 -0800 +*************** +*** 49,57 **** + endif + + # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them +! ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])")) +! RTM_KEY = -mrtm +! endif + + ifeq ($(cfg), release) + CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD +--- 49,57 ---- + endif + + # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them +! #ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])")) +! # RTM_KEY = -mrtm +! #endif + + ifeq ($(cfg), release) + CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD \ No newline at end of file diff --git a/scripts/uberenv/packages/uberenv-strawman/uberenv-strawman.tar.gz b/scripts/uberenv/packages/uberenv-strawman/uberenv-strawman.tar.gz new file mode 100644 index 0000000..88ad868 Binary files /dev/null and b/scripts/uberenv/packages/uberenv-strawman/uberenv-strawman.tar.gz differ diff --git a/src/examples/using-with-make/Makefile b/src/examples/using-with-make/Makefile index d629941..c464056 100644 --- a/src/examples/using-with-make/Makefile +++ b/src/examples/using-with-make/Makefile @@ -52,15 +52,13 @@ # CONDUIT_DIR={conduit install path} \ # make # ./example -# -# Note: (TODO) # # ############################################################################### INC_FLAGS=-I$(STRAWMAN_DIR)/include/strawman -I$(CONDUIT_DIR)/include/conduit -LINK_FLAGS=-L$(STRAWMAN_DIR)/lib/ -lstrawman +LINK_FLAGS=-L$(STRAWMAN_DIR)/lib/ -lstrawman -L$(CONDUIT_DIR)/lib/ -lconduit -lconduit_relay -lconduit_blueprint main: $(CXX) $(INC_FLAGS) example.cpp $(LINK_FLAGS) -o example