Skip to content

Commit 2af5e51

Browse files
authored
Merge pull request #180 from rogerfraser/code-enhancements
Various code enhancements for Version 1.2.5 release candidate 1
2 parents 7443f0a + beda7c1 commit 2af5e51

File tree

127 files changed

+6429
-6165
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+6429
-6165
lines changed

.github/workflows/cmake_release.yml

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,11 @@ jobs:
2929
sudo apt-get update
3030
sudo apt-get install -y --no-install-recommends lcov bzip2 wget cmake make g++ xsdcxx libxerces-c-dev
3131
sudo apt-get install -y --no-install-recommends libboost-system-dev libboost-filesystem-dev libboost-timer-dev libboost-thread-dev libboost-program-options-dev
32-
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
33-
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
34-
sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
35-
sudo apt-get update
36-
sudo apt-get install -y intel-mkl-64bit-2018.3-051
37-
38-
# Downgrade cmake (the build has a problem with most recent cmake 3.20.5)
39-
- name: Remove cmake 3.20.5
40-
run: |
41-
CMAKE=$(which cmake)
42-
sudo rm $CMAKE
43-
44-
- name: install cmake 3.16
45-
run: |
46-
sudo apt-get install cmake
47-
hash -r
32+
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
33+
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
34+
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
35+
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
36+
sudo apt install intel-basekit
4837
4938
# Build and test using shell script
5039
- name: Build

.github/workflows/test_coverage.yml

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,11 @@ jobs:
3030
sudo apt-get update
3131
sudo apt-get install -y --no-install-recommends lcov bzip2 wget cmake make g++ xsdcxx libxerces-c-dev
3232
sudo apt-get install -y --no-install-recommends libboost-system-dev libboost-filesystem-dev libboost-timer-dev libboost-thread-dev libboost-program-options-dev
33-
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
34-
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
35-
sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
36-
sudo apt-get update
37-
sudo apt-get install -y intel-mkl-64bit-2018.3-051
38-
39-
# Downgrade cmake (the build has a problem with most recent cmake 3.20.5)
40-
- name: Remove cmake 3.20.5
41-
run: |
42-
CMAKE=$(which cmake)
43-
sudo rm $CMAKE
44-
45-
- name: Install cmake 3.16
46-
run: |
47-
sudo apt-get install cmake
48-
hash -r
33+
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
34+
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
35+
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
36+
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
37+
sudo apt install intel-basekit
4938
5039
# Build and test using shell script
5140
- name: Build and test

.travis.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,23 @@ branches:
1515
before_install:
1616
- pip install --user cpp-coveralls codecov
1717
- sudo apt-get update
18-
- sudo apt-get install -y --no-install-recommends lcov bzip2 wget cmake make g++ xsdcxx libxerces-c-dev
18+
- sudo apt-get install -y --no-install-recommends lcov bzip2 wget make g++ xsdcxx libxerces-c-dev
19+
# Upgrade to a newer version of CMake version to handle oneAPI
20+
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
21+
- mkdir ${DEPS_DIR} && cd ${DEPS_DIR}
22+
- travis_retry wget --no-check-certificate https://cmake.org/files/v3.20/cmake-3.20.6-linux-x86_64.tar.gz
23+
- tar -xvf cmake-3.20.6-linux-x86_64.tar.gz > /dev/null
24+
- mv cmake-3.20.6-linux-x86_64 cmake-install
25+
- PATH=${DEPS_DIR}/cmake-install:${DEPS_DIR}/cmake-install/bin:$PATH
26+
- cd ${TRAVIS_BUILD_DIR}
27+
# Install boost
1928
- sudo apt-get install -y --no-install-recommends libboost-system-dev libboost-filesystem-dev libboost-timer-dev libboost-thread-dev libboost-program-options-dev
20-
- wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
21-
- sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
22-
- sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
29+
# Install Intel oneAPI
30+
- wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
31+
- sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
32+
- sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
2333
- sudo apt-get update
24-
- sudo apt-get install -y intel-mkl-64bit-2018.3-051
34+
- sudo apt-get install -y intel-basekit
2535

2636
script:
2737
- chmod +x ./resources/make_dynadjust_gcc.sh

Dockerfile

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,20 @@ RUN apt-get update &&\
99
apt update &&\
1010
apt-get install -y tzdata &&\
1111
apt-get install -y wget &&\
12+
apt-get install -y software-properties-common &&\
1213
apt-get install -y --no-install-recommends gnupg2 &&\
1314
apt-get install -y --no-install-recommends p7zip &&\
1415
apt-get install -y --no-install-recommends libboost-system-dev libboost-filesystem-dev libboost-timer-dev libboost-thread-dev libboost-program-options-dev &&\
1516
apt-get install -y --no-install-recommends libxerces-c-dev &&\
1617
apt-get install -y --no-install-recommends cmake &&\
1718
apt-get install -y --no-install-recommends make &&\
1819
apt-get install -y --no-install-recommends g++ &&\
19-
apt-get install -y --no-install-recommends xsdcxx &&\
20-
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \
21-
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \
22-
sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list' && \
23-
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install cpio intel-mkl-64bit-2018.3-051 &&\
20+
apt-get install -y --no-install-recommends xsdcxx
21+
RUN wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
22+
RUN apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
23+
RUN add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
24+
RUN apt install -y intel-basekit
25+
RUN apt-get -y install cpio &&\
2426
cd ./DynAdjust &&\
2527
chmod +x ./resources/make_dynadjust_gcc.sh &&\
2628
./resources/make_dynadjust_gcc.sh --auto --no-clone

dynadjust/CMakeLists.txt

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
cmake_minimum_required (VERSION 3.0)
1+
cmake_minimum_required (VERSION 3.15)
22

33
project (dynadjust)
44

5-
set (DYNADJUST_VERSION "1.2.4")
5+
set (DYNADJUST_VERSION "1.2.5")
66

77
if (BUILD_TESTING)
88
enable_testing()
9+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
910
endif (BUILD_TESTING)
1011

1112
if(NOT CMAKE_BUILD_TYPE)
@@ -25,13 +26,16 @@ endif(UNIX)
2526

2627
set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR};${CMAKE_MODULE_PATH}")
2728
set (CMAKE_CXX_STANDARD 14)
28-
add_definitions(-Wno-deprecated-declarations)
29+
30+
# ignore warnings if the return type of a function has a
31+
# type qualifier such as const (e.g. std::exception::what())
32+
add_definitions(-Wno-ignored-qualifiers)
2933

3034
# default CXX flags
3135
if (BUILD_TESTING)
3236
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") # turn off warnings for unit testing and code coverage
3337
else ()
34-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
38+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
3539
endif (BUILD_TESTING)
3640

3741
# Debug CXX flags (GCC 4.8 introduced -Og for superior debugging experience. For older versions, use -O0)
@@ -87,34 +91,51 @@ endif ()
8791
message (" ")
8892

8993
message (STATUS "Looking for intel math kernel library (mkl)...")
90-
find_package (MKL COMPONENTS mkl_blas95_ilp64 mkl_intel_ilp64 mkl_intel_thread mkl_core REQUIRED)
91-
if (NOT MKL_FOUND )
92-
set (DNA_BUILD_ERROR 1)
93-
set (MKL_FIND_ERROR 1)
94-
message (SEND_ERROR "Cannot find MKL library components")
95-
else ()
96-
message (STATUS "MKL seems to be installed correctly.")
97-
endif ()
98-
message (" ")
94+
find_package(MKL CONFIG REQUIRED)
9995

10096
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
10197
find_library(IOMP5_LIB iomp5 PATHS /opt/intel/lib)
98+
find_library(MKL_INTEL_ILP64 mkl_intel_ilp64 PATHS ${MKL_ROOT}/lib/intel64)
99+
find_library(MKL_INTEL_THREAD NAMES mkl_intel_thread PATHS ${MKL_ROOT}/lib/intel64)
100+
find_library(MKL_INTEL_CORE NAMES mkl_core PATHS ${MKL_ROOT}/lib/intel64)
102101
else()
103-
find_library(IOMP5_LIB iomp5 PATHS /opt/intel/lib/intel64)
102+
find_library(IOMP5_LIB iomp5 PATHS /opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64)
103+
find_library(MKL_INTEL_ILP64 mkl_intel_ilp64 PATHS ${MKL_ROOT}/lib/intel64)
104+
find_library(MKL_INTEL_THREAD NAMES mkl_intel_thread PATHS ${MKL_ROOT}/lib/intel64)
105+
find_library(MKL_INTEL_CORE NAMES mkl_core PATHS ${MKL_ROOT}/lib/intel64)
104106
endif()
107+
105108
if( NOT IOMP5_LIB )
106109
set(DNA_BUILD_ERROR 1)
107110
set (IOMP5_FIND_ERROR 1)
108111
message(SEND_ERROR "Cannot find iomp5 library")
109112
endif()
110113

111-
set (DNA_LIBRARIES ${Boost_LIBRARIES} ${XERCESC_LIBRARY} ${MKL_LIBRARIES} ${IOMP5_LIB})
114+
if( NOT MKL_INTEL_ILP64 )
115+
set(DNA_BUILD_ERROR 1)
116+
set (MKL_INTEL_ILP64_FIND_ERROR 1)
117+
message(SEND_ERROR "Cannot find mkl_intel_ilp64 library")
118+
endif()
119+
120+
if( NOT MKL_INTEL_THREAD )
121+
set(DNA_BUILD_ERROR 1)
122+
set (MKL_INTEL_THREAD_FIND_ERROR 1)
123+
message(SEND_ERROR "Cannot find mkl_intel_thread library")
124+
endif()
125+
126+
if( NOT MKL_INTEL_CORE )
127+
set(DNA_BUILD_ERROR 1)
128+
set (MKL_INTEL_CORE_FIND_ERROR 1)
129+
message(SEND_ERROR "Cannot find mkl_intel_core library")
130+
endif()
131+
132+
set (DNA_LIBRARIES ${Boost_LIBRARIES} ${XERCESC_LIBRARY} ${MKL_INTEL_ILP64} ${MKL_INTEL_THREAD} ${MKL_INTEL_CORE} ${IOMP5_LIB})
112133

113134
message (STATUS "DynAdjust library dependencies:")
114135
message (STATUS ${DNA_LIBRARIES})
115136
message (" ")
116137

117-
include_directories( ${CMAKE_SOURCE_DIR} ${Boost_INCLUDE_DIRS} ${MKL_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIR} ${XSD_INCLUDE_DIR})
138+
include_directories( ${CMAKE_SOURCE_DIR} ${Boost_INCLUDE_DIRS} ${MKL_ROOT}/include ${XERCESC_INCLUDE_DIR} ${XSD_INCLUDE_DIR})
118139

119140
if (DNA_BUILD_ERROR)
120141
message (" ")

dynadjust/FindMKL.cmake

Lines changed: 0 additions & 126 deletions
This file was deleted.

dynadjust/dynadjust.props

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ImportGroup Label="PropertySheets" />
4+
<PropertyGroup Label="UserMacros">
5+
<BoostIncludeDir>C:\Data\boost\boost_1_78_0\include</BoostIncludeDir>
6+
<BoostLibDir>C:\Data\boost\boost_1_78_0\lib\$(Platform)</BoostLibDir>
7+
<XsdIncludeDir>C:\Program Files (x86)\CodeSynthesis XSD 4.0\include</XsdIncludeDir>
8+
<XsdLibDir_x64>C:\Program Files (x86)\CodeSynthesis XSD 4.0\lib64\vc-12.0</XsdLibDir_x64>
9+
<XsdLibDir_Win32>C:\Program Files (x86)\CodeSynthesis XSD 4.0\lib\vc-12.0</XsdLibDir_Win32>
10+
</PropertyGroup>
11+
<PropertyGroup />
12+
<ItemDefinitionGroup />
13+
<ItemGroup>
14+
<BuildMacro Include="BoostIncludeDir">
15+
<Value>$(BoostIncludeDir)</Value>
16+
</BuildMacro>
17+
<BuildMacro Include="BoostLibDir">
18+
<Value>$(BoostLibDir)</Value>
19+
</BuildMacro>
20+
<BuildMacro Include="XsdIncludeDir">
21+
<Value>$(XsdIncludeDir)</Value>
22+
</BuildMacro>
23+
<BuildMacro Include="XsdLibDir_x64">
24+
<Value>$(XsdLibDir_x64)</Value>
25+
</BuildMacro>
26+
<BuildMacro Include="XsdLibDir_Win32">
27+
<Value>$(XsdLibDir_Win32)</Value>
28+
</BuildMacro>
29+
</ItemGroup>
30+
</Project>

0 commit comments

Comments
 (0)