Merge remote-tracking branch 'app4triqs-remote/3.0.x' into unstable
89
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
name: build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ unstable ]
|
||||
pull_request:
|
||||
branches: [ unstable ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- {os: ubuntu-20.04, cc: gcc-10, cxx: g++-10}
|
||||
- {os: ubuntu-20.04, cc: clang-10, cxx: clang++-10}
|
||||
- {os: macos-10.15, cc: gcc-10, cxx: g++-10}
|
||||
- {os: macos-10.15, cc: /usr/local/opt/llvm/bin/clang, cxx: /usr/local/opt/llvm/bin/clang++}
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install ubuntu dependencies
|
||||
if: matrix.os == 'ubuntu-20.04'
|
||||
run: >
|
||||
sudo apt-get install
|
||||
clang-10
|
||||
g++-10
|
||||
gfortran
|
||||
hdf5-tools
|
||||
libblas-dev
|
||||
libboost-dev
|
||||
libclang-10-dev
|
||||
libc++-10-dev
|
||||
libc++abi-10-dev
|
||||
libfftw3-dev
|
||||
libgfortran4
|
||||
libgmp-dev
|
||||
libhdf5-dev
|
||||
liblapack-dev
|
||||
libopenmpi-dev
|
||||
openmpi-bin
|
||||
openmpi-common
|
||||
openmpi-doc
|
||||
python3-clang-10
|
||||
python3-dev
|
||||
python3-mako
|
||||
python3-matplotlib
|
||||
python3-mpi4py
|
||||
python3-numpy
|
||||
python3-pip
|
||||
python3-scipy
|
||||
python3-sphinx
|
||||
python3-nbsphinx
|
||||
|
||||
- name: Install homebrew dependencies
|
||||
if: matrix.os == 'macos-10.15'
|
||||
run: |
|
||||
brew install gcc@10 llvm@10 boost fftw hdf5 open-mpi openblas numpy scipy mpi4py
|
||||
pip3 install mako
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
- name: Build & Install TRIQS
|
||||
env:
|
||||
CC: ${{ matrix.cc }}
|
||||
CXX: ${{ matrix.cxx }}
|
||||
run: |
|
||||
git clone https://github.com/TRIQS/triqs --branch unstable
|
||||
mkdir triqs/build && cd triqs/build
|
||||
cmake .. -DBuild_Tests=OFF -DCMAKE_INSTALL_PREFIX=$HOME/install
|
||||
make -j1 install VERBOSE=1
|
||||
cd ../
|
||||
|
||||
- name: Build dft_tools
|
||||
env:
|
||||
CC: ${{ matrix.cc }}
|
||||
CXX: ${{ matrix.cxx }}
|
||||
run: |
|
||||
source $HOME/install/share/triqsvars.sh
|
||||
mkdir build && cmake -B build
|
||||
cmake --build build -j2
|
||||
|
||||
- name: Test dft_tools
|
||||
run: |
|
||||
source $HOME/install/share/triqsvars.sh
|
||||
cd build
|
||||
ctest -j2 --output-on-failure
|
34
.travis.yml
@ -1,34 +0,0 @@
|
||||
|
||||
language: cpp
|
||||
sudo: required
|
||||
dist: bionic
|
||||
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
|
||||
before_install:
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y --allow-unauthenticated libblas-dev libboost-all-dev libfftw3-dev libgfortran3 libhdf5-serial-dev libgmp-dev liblapack-dev libopenmpi-dev libclang-dev python-clang-6.0 python-dev python-h5py python-mako python-matplotlib python-mpi4py python-numpy python-scipy python-sphinx libjs-mathjax libnfft3-dev
|
||||
|
||||
install: true
|
||||
|
||||
script:
|
||||
- export INSTALL_DIR=$HOME/root_install # We install outside the repository
|
||||
# ===== Set up TRIQS
|
||||
- cd $TRAVIS_BUILD_DIR
|
||||
- git clone https://github.com/TRIQS/triqs --branch unstable
|
||||
- mkdir triqs/build && cd triqs/build
|
||||
- cmake .. -DBuild_Tests=OFF -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR
|
||||
- make -j2 install
|
||||
- source $INSTALL_DIR/share/triqsvars.sh
|
||||
# ===== Set up triqs_dft_tools and test
|
||||
- cd $TRAVIS_BUILD_DIR
|
||||
- mkdir build && cd build
|
||||
- cmake .. -DASAN=ON -DUBSAN=ON
|
||||
- export UBSAN_SYMBOLIZER_PATH=$(which llvm-symbolizer)
|
||||
- export ASAN_SYMBOLIZER_PATH=$(which llvm-symbolizer)
|
||||
- export UBSAN_OPTIONS=symbolize=1:print_stacktrace=1
|
||||
- export ASAN_OPTIONS=symbolize=1:detect_leaks=0
|
||||
- export CTEST_OUTPUT_ON_FAILURE=1
|
||||
- make -j2 && make test
|
11
Jenkinsfile
vendored
@ -102,6 +102,7 @@ for (int i = 0; i < osxPlatforms.size(); i++) {
|
||||
}
|
||||
|
||||
/****************** wrap-up */
|
||||
def error = null
|
||||
try {
|
||||
parallel platforms
|
||||
if (keepInstall) { node("docker") {
|
||||
@ -150,13 +151,13 @@ try {
|
||||
} }
|
||||
} }
|
||||
} catch (err) {
|
||||
error = err
|
||||
} finally {
|
||||
/* send email on build failure (declarative pipeline's post section would work better) */
|
||||
if (env.BRANCH_NAME != "jenkins") emailext(
|
||||
if ((error != null || currentBuild.currentResult != 'SUCCESS') && env.BRANCH_NAME != "jenkins") emailext(
|
||||
subject: "\$PROJECT_NAME - Build # \$BUILD_NUMBER - FAILED",
|
||||
body: """\$PROJECT_NAME - Build # \$BUILD_NUMBER - FAILED
|
||||
|
||||
$err
|
||||
|
||||
Check console output at \$BUILD_URL to view full results.
|
||||
|
||||
Building \$BRANCH_NAME for \$CAUSE
|
||||
@ -168,11 +169,11 @@ Changes:
|
||||
End of build log:
|
||||
\${BUILD_LOG,maxLines=60}
|
||||
""",
|
||||
to: 'mzingl@flatironinstitute.org, hstrand@flatironinstitute.org, nwentzell@flatironinstitute.org, dsimon@flatironinstitute.org',
|
||||
to: 'mzingl@flatironinstitute.org, ahampel@flatironinstitute.org, nwentzell@flatironinstitute.org, dsimon@flatironinstitute.org',
|
||||
recipientProviders: [
|
||||
[$class: 'DevelopersRecipientProvider'],
|
||||
],
|
||||
replyTo: '$DEFAULT_REPLYTO'
|
||||
)
|
||||
throw err
|
||||
if (error != null) throw error
|
||||
}
|
||||
|
5
deps/CMakeLists.txt
vendored
@ -17,7 +17,8 @@ include(external_dependency.cmake)
|
||||
# to locate the package in the system.
|
||||
# Skip this step if Build_Deps option is set.
|
||||
# 2. Try to find a directory containing the sources
|
||||
# at ${PROJECT_SOURCE_DIR}/deps/name. If found
|
||||
# at ${CMAKE_CURRENT_SOURCE_DIR}/name and
|
||||
# ${CMAKE_SOURCE_DIR}/deps/name. If found
|
||||
# build it as a cmake sub-project.
|
||||
# 3. If GIT_REPO is provided, git clone the sources,
|
||||
# and build them as a cmake sub-project.
|
||||
@ -34,7 +35,7 @@ include(external_dependency.cmake)
|
||||
# In particular the dependency will not be installed.
|
||||
|
||||
if(NOT DEFINED Build_Deps)
|
||||
set(Build_Deps "Never" CACHE STRING "Do we build dependencies from source? [Never/Always/IfNotFound]")
|
||||
set(Build_Deps "IfNotFound" CACHE STRING "Do we build dependencies from source? [Never/Always/IfNotFound]")
|
||||
else()
|
||||
set(Build_Deps_Opts "Never" "Always" "IfNotFound")
|
||||
if(NOT ${Build_Deps} IN_LIST Build_Deps_Opts)
|
||||
|
52
deps/external_dependency.cmake
vendored
@ -1,25 +1,38 @@
|
||||
###################################################################################
|
||||
# Copyright (c) 2020 Simons Foundation
|
||||
#
|
||||
# TRIQS_DFT_TOOLS: a Toolbox for Research in Interacting Quantum Systems
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Copyright (C) 2020 Simons Foundation
|
||||
# authors: N. Wentzell
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# TRIQS_DFT_TOOLS is free software: you can redistribute it and/or modify it under the
|
||||
# terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation, either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# TRIQS_DFT_TOOLS is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# TRIQS_DFT_TOOLS. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
# You may obtain a copy of the License at
|
||||
# https://www.gnu.org/licenses/gpl-3.0.txt
|
||||
|
||||
|
||||
# Consider ROOT env variables in find_package
|
||||
if(POLICY CMP0074)
|
||||
cmake_policy(SET CMP0074 NEW)
|
||||
endif()
|
||||
|
||||
# Make sure that imported targets are always global
|
||||
get_property(IMPORTED_ALWAYS_GLOBAL GLOBAL PROPERTY IMPORTED_ALWAYS_GLOBAL)
|
||||
if(NOT IMPORTED_ALWAYS_GLOBAL)
|
||||
function(add_library)
|
||||
set(_args ${ARGN})
|
||||
if ("${_args}" MATCHES ";IMPORTED")
|
||||
list(APPEND _args GLOBAL)
|
||||
endif()
|
||||
_add_library(${_args})
|
||||
endfunction()
|
||||
set_property(GLOBAL PROPERTY IMPORTED_ALWAYS_GLOBAL TRUE)
|
||||
endif()
|
||||
|
||||
# Define External Dependency Function
|
||||
function(external_dependency)
|
||||
cmake_parse_arguments(ARG "EXCLUDE_FROM_ALL;BUILD_ALWAYS" "VERSION;GIT_REPO;GIT_TAG" "" ${ARGN})
|
||||
|
||||
@ -51,6 +64,9 @@ function(external_dependency)
|
||||
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0})
|
||||
message(STATUS "Found sources for dependency ${ARGV0} at ${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0}")
|
||||
add_subdirectory(${ARGV0} ${subdir_opts})
|
||||
elseif(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/deps/${ARGV0})
|
||||
message(STATUS "Found sources for dependency ${ARGV0} at ${CMAKE_SOURCE_DIR}/deps/${ARGV0}")
|
||||
add_subdirectory(${ARGV0} ${subdir_opts})
|
||||
elseif(ARG_GIT_REPO)
|
||||
set(bin_dir ${CMAKE_CURRENT_BINARY_DIR}/${ARGV0})
|
||||
set(src_dir ${bin_dir}_src)
|
||||
|
@ -48,13 +48,6 @@ Installation steps
|
||||
|
||||
$ git clone https://github.com/TRIQS/dft_tools dft_tools.src
|
||||
|
||||
#. Make sure that all additional dependencies are installed on your system and available in your environment.
|
||||
Alternatively build the dependencies from source instead with::
|
||||
|
||||
$ (cd deps && ./download.sh)
|
||||
|
||||
In this case they will be installed together with your application.
|
||||
|
||||
#. Create and move to a new directory where you will compile the code::
|
||||
|
||||
$ mkdir dft_tools.build && cd dft_tools.build
|
||||
|
BIN
doc/themes/agogo/static/bgfooter.png
vendored
Normal file
After Width: | Height: | Size: 434 B |
BIN
doc/themes/agogo/static/bgtop.png
vendored
Normal file
After Width: | Height: | Size: 430 B |
BIN
doc/themes/triqs/static/bodybg.png
vendored
Normal file
After Width: | Height: | Size: 602 B |
BIN
doc/themes/triqs/static/footerbg.png
vendored
Normal file
After Width: | Height: | Size: 313 B |
BIN
doc/themes/triqs/static/headerbg.png
vendored
Normal file
After Width: | Height: | Size: 344 B |
BIN
doc/themes/triqs/static/listitem.png
vendored
Normal file
After Width: | Height: | Size: 207 B |
BIN
doc/themes/triqs/static/relbg.png
vendored
Normal file
After Width: | Height: | Size: 332 B |
@ -0,0 +1,70 @@
|
||||
easyblock = 'CMakeMake'
|
||||
|
||||
name = 'TRIQS-dft_tools'
|
||||
version = '3.0.0'
|
||||
versionsuffix = '-Python-%(pyver)s'
|
||||
|
||||
homepage = 'https://triqs.github.io/dft_tools/'
|
||||
description = """
|
||||
TRIQS (Toolbox for Research on Interacting Quantum Systems) is a
|
||||
scientific project providing a set of C++ and Python libraries to
|
||||
develop new tools for the study of interacting quantum systems.
|
||||
|
||||
This TRIQS-based-based application is aimed at ab-initio calculations
|
||||
for correlated materials, combining realistic DFT band-structure calculation
|
||||
with the dynamical mean-field theory. Together with the necessary tools to
|
||||
perform the DMFT self-consistency loop for realistic multi-band problems,
|
||||
the package provides a full-fledged charge self-consistent interface to the
|
||||
Wien2K package. In addition, if Wien2k is not available, it provides a generic
|
||||
interface for one-shot DFT+DMFT calculations, where only the single-particle
|
||||
Hamiltonian in orbital space has to be provided.
|
||||
"""
|
||||
|
||||
docurls = ['https://triqs.github.io/dft_tools/%(version_major_minor)s.x/']
|
||||
software_license = 'LicenseGPLv3'
|
||||
|
||||
toolchain = {'name': 'foss', 'version': '2019a'}
|
||||
toolchainopts = {'pic': True, 'usempi': True}
|
||||
|
||||
source_urls = ['https://github.com/TRIQS/dft_tools/releases/download/%(version)s/']
|
||||
sources = ['dft_tools-%(version)s.tar.gz']
|
||||
checksums = ['PUT HERE THE SHA256 OF THE RELEASE TARBALL']
|
||||
|
||||
dependencies = [
|
||||
('Python', '3.7.2'),
|
||||
('SciPy-bundle', '2019.03'),
|
||||
('Boost', '1.70.0'),
|
||||
('Clang', '8.0.0'),
|
||||
('GMP', '6.1.2'),
|
||||
('Mako', '1.0.8'),
|
||||
('h5py', '2.9.0'),
|
||||
('TRIQS', '3.0.0', versionsuffix),
|
||||
]
|
||||
|
||||
builddependencies = [
|
||||
('CMake', '3.13.3')
|
||||
]
|
||||
|
||||
separate_build_dir = True
|
||||
|
||||
runtest = 'test'
|
||||
|
||||
sanity_check_paths = {
|
||||
'files': ['bin/dmftproj', 'lib/libtriqs_dft_tools_c.%s' % SHLIB_EXT],
|
||||
'dirs': ['include/triqs_dft_tools', 'bin', 'lib', 'share',
|
||||
'lib/python%(pyshortver)s/site-packages/triqs_dft_tools'],
|
||||
}
|
||||
|
||||
sanity_check_commands = ["python -c 'import triqs_dft_tools'"]
|
||||
|
||||
modextrapaths = {
|
||||
'CPLUS_INCLUDE_PATH': 'include',
|
||||
'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
|
||||
'CMAKE_PREFIX_PATH': 'lib/cmake/triqs_dft_tools',
|
||||
}
|
||||
modextravars = {
|
||||
'TRIQS_DFT_TOOLS_ROOT': '%(installdir)s',
|
||||
'TRIQS_DFT_TOOLS_VERSION': '%(version)s',
|
||||
}
|
||||
|
||||
moduleclass = 'phys'
|
22
packaging/conda/build.sh
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
# Openmpi Specific environment setup - Cf. https://github.com/conda-forge/libnetcdf-feedstock/pull/80
|
||||
export OMPI_MCA_btl=self,tcp
|
||||
export OMPI_MCA_plm=isolated
|
||||
export OMPI_MCA_rmaps_base_oversubscribe=yes
|
||||
export OMPI_MCA_btl_vader_single_copy_mechanism=none
|
||||
mpiexec="mpiexec --allow-run-as-root"
|
||||
|
||||
source $PREFIX/share/triqsvars.sh
|
||||
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$PREFIX \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
..
|
||||
|
||||
make -j${CPU_COUNT} VERBOSE=1
|
||||
CTEST_OUTPUT_ON_FAILURE=1 ctest
|
||||
make install
|
3
packaging/conda/conda_build_config.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
mpi:
|
||||
- mpich
|
||||
- openmpi
|
55
packaging/conda/meta.yaml
Normal file
@ -0,0 +1,55 @@
|
||||
{% set version = "3.0.0" %}
|
||||
|
||||
package:
|
||||
name: triqs_dft_tools
|
||||
version: {{ version }}
|
||||
|
||||
source:
|
||||
url: https://github.com/TRIQS/dft_tools/releases/download/{{ version }}/dft_tools-{{ version }}.tar.gz
|
||||
sha256: PUT HERE THE SHA256 OF YOUR RELEASE TARBALL
|
||||
|
||||
build:
|
||||
number: 0
|
||||
skip: True # [win or py<30]
|
||||
|
||||
requirements:
|
||||
build:
|
||||
- cmake
|
||||
- make
|
||||
- {{ compiler('c') }}
|
||||
- {{ compiler('cxx') }}
|
||||
- {{ compiler('fortran') }}
|
||||
host:
|
||||
- triqs {{ '.'.join(version.split('.')[:2]) }}
|
||||
- boost-cpp
|
||||
- {{ mpi }}
|
||||
- libblas
|
||||
- liblapack
|
||||
- python
|
||||
run:
|
||||
- {{ pin_compatible("triqs", max_pin="x.x") }}
|
||||
- {{ mpi }}
|
||||
- libblas
|
||||
- liblapack
|
||||
- python
|
||||
|
||||
test:
|
||||
commands:
|
||||
- export OMPI_MCA_btl=self,tcp
|
||||
- export OMPI_MCA_plm=isolated
|
||||
- export OMPI_MCA_rmaps_base_oversubscribe=yes
|
||||
- export OMPI_MCA_btl_vader_single_copy_mechanism=none
|
||||
- export mpiexec="mpiexec --allow-run-as-root"
|
||||
- python -c "import triqs_dft_tools"
|
||||
|
||||
about:
|
||||
home: https://triqs.github.io/dft_tools
|
||||
license: GPL-3.0-or-later
|
||||
license_family: GPL
|
||||
license_file: LICENSE.txt
|
||||
summary: 'Toolbox for ab initio calculations of correlated materials'
|
||||
|
||||
extra:
|
||||
recipe-maintainers:
|
||||
- wentzell
|
||||
- pgunn
|
@ -1,24 +1,18 @@
|
||||
###################################################################################
|
||||
# Copyright (c) 2019-2020 Simons Foundation
|
||||
#
|
||||
# TRIQS: a Toolbox for Research in Interacting Quantum Systems
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Copyright (C) 2019-2020 Simons Foundation
|
||||
# author: N. Wentzell
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# TRIQS is free software: you can redistribute it and/or modify it under the
|
||||
# terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation, either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# TRIQS. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
# You may obtain a copy of the License at
|
||||
# https://www.gnu.org/licenses/gpl-3.0.txt
|
||||
|
||||
|
||||
# Recursively fetch all targets that the interface of a target depends upon
|
||||
macro(get_all_interface_targets name target)
|
||||
@ -89,7 +83,8 @@ macro(extract_flags)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# We have to replace generator expressions explicitly
|
||||
# ==== We have to replace generator expressions explicitly ====
|
||||
|
||||
if(ARG_BUILD_INTERFACE)
|
||||
string(REGEX REPLACE "\\$<BUILD_INTERFACE:([^ ]*)>" "\\1" ${target}_LDFLAGS "${${target}_LDFLAGS}")
|
||||
string(REGEX REPLACE "\\$<BUILD_INTERFACE:([^ ]*)>" "\\1" ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
@ -97,6 +92,25 @@ macro(extract_flags)
|
||||
string(REGEX REPLACE "\\$<INSTALL_INTERFACE:([^ ]*)>" "\\1" ${target}_LDFLAGS "${${target}_LDFLAGS}")
|
||||
string(REGEX REPLACE "\\$<INSTALL_INTERFACE:([^ ]*)>" "\\1" ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
string(REGEX REPLACE "\\$<\\$<CXX_COMPILER_ID:GNU>:([^ ]*)>" "\\1" ${target}_LDFLAGS "${${target}_LDFLAGS}")
|
||||
string(REGEX REPLACE "\\$<\\$<CXX_COMPILER_ID:GNU>:([^ ]*)>" "\\1" ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
string(REGEX REPLACE "\\$<\\$<CXX_COMPILER_ID:Clang>:([^ ]*)>" "\\1" ${target}_LDFLAGS "${${target}_LDFLAGS}")
|
||||
string(REGEX REPLACE "\\$<\\$<CXX_COMPILER_ID:Clang>:([^ ]*)>" "\\1" ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
string(REGEX REPLACE "\\$<\\$<CXX_COMPILER_ID:AppleClang>:([^ ]*)>" "\\1" ${target}_LDFLAGS "${${target}_LDFLAGS}")
|
||||
string(REGEX REPLACE "\\$<\\$<CXX_COMPILER_ID:AppleClang>:([^ ]*)>" "\\1" ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
endif()
|
||||
|
||||
# Remove all remaining generator expressions
|
||||
string(REGEX REPLACE " [^ ]*\\$<[^ ]*:[^>]*>" "" ${target}_LDFLAGS "${${target}_LDFLAGS}")
|
||||
string(REGEX REPLACE " [^ ]*\\$<[^ ]*:[^>]*>" "" ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
|
||||
# Filter out system directories from LDFLAGS and CXXFLAGS
|
||||
string(REGEX REPLACE " -L/usr/lib " " " ${target}_LDFLAGS "${${target}_LDFLAGS}")
|
||||
string(REGEX REPLACE " -I/usr/include " " " ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
string(REGEX REPLACE " -isystem/usr/include " " " ${target}_CXXFLAGS "${${target}_CXXFLAGS}")
|
||||
|
||||
endmacro()
|
||||
|
@ -15,13 +15,18 @@ set(@PROJECT_NAME@_GIT_HASH @PROJECT_GIT_HASH@ CACHE STRING "@PROJECT_NAME@ git
|
||||
set(@PROJECT_NAME@_ROOT @CMAKE_INSTALL_PREFIX@ CACHE STRING "@PROJECT_NAME@ root directory")
|
||||
|
||||
## Find the target dependencies
|
||||
#include(CMakeFindDependencyMacro)
|
||||
#find_dependency(... HINTS @CMAKE_INSTALL_PREFIX@)
|
||||
#function(find_dep)
|
||||
# get_property(${ARGV0}_FOUND GLOBAL PROPERTY ${ARGV0}_FOUND)
|
||||
# if(NOT ${ARGV0}_FOUND)
|
||||
# find_package(${ARGN} REQUIRED HINTS @CMAKE_INSTALL_PREFIX@)
|
||||
# endif()
|
||||
#endfunction()
|
||||
#find_dep(depname 1.0)
|
||||
|
||||
# Include the exported targets of this project
|
||||
include(@CMAKE_INSTALL_PREFIX@/lib/cmake/@PROJECT_NAME@/@PROJECT_NAME@-targets.cmake)
|
||||
|
||||
message(STATUS "Found @PROJECT_NAME@-config.cmake with version @PROJECT_VERSION@, hash = @PROJECT_GIT_HASH@")
|
||||
message(STATUS "Found @PROJECT_NAME@-config.cmake with version @PROJECT_VERSION@, hash = @PROJECT_GIT_HASH@, root = @CMAKE_INSTALL_PREFIX@")
|
||||
|
||||
# Was the Project built with Documentation?
|
||||
set(@PROJECT_NAME@_WITH_DOCUMENTATION @Build_Documentation@ CACHE BOOL "Was @PROJECT_NAME@ build with documentation?")
|
||||
|