Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
Contribution by @turboencabulator
Closing #84
|
|
With cmake is best to require out-of-source builds,
and to avoid intalling into the same directory as the
build was performed.
Both of these situations can cause very confusing situations
that can frustrate new users of the software package, so
check for and provide guidance to the end-users.
These files were initially contributed to the ITK
(www.itk.org) project and have been widely re-used
by many other projects.
NOTE: This patch is dependant on pull request #16
|
|
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block. This is no longer the preferred style.
NOTE: MUST USE GNU compliant version of sed
Run the following shell code:
for c in else endif endforeach endfunction endmacro endwhile; do
echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' \
| xargs -0 gsed -i -f convert.sed \
&& rm convert.sed
|
|
Ancient CMake versions required upper-case commands. Later command
names became case-insensitive. Now the preferred style is lower-case.
Run the following shell code:
NOTE: MUST USE GNU compliant version of sed
cmake --help-command-list \
| grep -v "cmake version" \
| while read c; do
echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done >convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' \
| xargs -0 gsed -i -f convert.sed \
&& rm convert.sed
|
|
This is mostly a long term maintenance improvement.
Many coding styles require elimination of trailing whitespace, and
many editors and source code management configurations automatically
gobble up whitespace. When these tools gobble up whitespace, it
complicates reviewing the meaningful code changes.
By removing whitespace on one patch, it makes future
code reviews much easier.
=SCRIPT====================================================================
if which tempfile &>/dev/null; then
TEMPMAKER=tempfile
elif which mktemp &>/dev/null; then
TEMPMAKER=mktemp
else
echo "Cannot find tempfile program." 2>&1
exit 1
fi
MYTEMP=$($TEMPMAKER)
trap 'rm -f $MYTEMP' SIGINT SIGTERM
stripit() {
echo "stripping $1"
sed 's/[ \t]*$//' "$1" > $MYTEMP
cp $MYTEMP "$1"
}
if [ $# -gt 0 ]; then
while [ "$1" != "" ]; do
stripit $1
shift
done
else
while read -t 2; do
stripit $REPLY
done
fi
rm $MYTEMP
=================================================
|
|
This is mostly a long term maintenance improvement.
Many coding styles require elimination of trailing whitespace, and
many editors and source code management configurations automatically
gobble up whitespace. When these tools gobble up whitespace, it
complicates reviewing the meaningful code changes.
By removing whitespace on one patch, it makes future
code reviews much easier.
|
|
"One of the improvements with the patches is that SOVERSION and VERSION are now properly set and the proper symlinks are created:
```
liblapack.so -> liblapack.so.3
liblapack.so.3 -> liblapack.so.3.5.0
liblapack.so.3.5.0
```
Since BLAS is shipped with LAPACK and no separate version number is given for BLAS, I applied the same there, too."
Tested on Julie's Mac
TO DO: To test under Windows
====
Updated OSX RPATH settings
In response to CMake 3.0 generating warnings regarding policy CMP0042,
the OSX RPATH settings have been updated per recommendations found
in the CMake Wiki:
http://www.cmake.org/Wiki/CMake_RPATH_handling#Mac_OS_X_and_the_RPATH
|
|
Provide CMake packages for both LAPACK and LAPACKE
Teach "lapack-config.cmake" to provide variables
LAPACK_blas_LIBRARIES
LAPACK_lapack_LIBRARIES
that contain either the target names when using the reference
implementation or the system libraries found for them.
Configure a "lapacke-config.cmake" file for the build and install
trees to package LAPACKE. Teach it to load the LAPACK package
installed with it. Provide variables
LAPACKE_INCLUDE_DIRS
LAPACKE_LIBRARIES
containing the header file search path for lapacke headers
and the list of lapacke library targets.
This requires CMake 2.8.10 to separate the installation export
for the lapacke library from the other targets.
|
|
|
|
|
|
|
|
include inside CMAKE
|
|
Now we can generate dll for LAPACK and LAPACKE directly for Mingw so that FORTRAN compiler is longer needed.
Because LAPACKE contains some routines from MATGEN (for PLASMA), LAPACKE will requires the tmglib library.
Add some LAPACK 3.4.0 routines were missing in the CMAKE LAPACK build.
|
|
|
|
Here is a patch for lapack to provide MS-format dll import libraries
from the MinGW GNU toolchain. It is ready for others to try before it
goes upstream. You just need to have MinGW GNU Fortran 4.x and one of
the VS IDEs installed. Configure a MinGW build with BUILD_SHARED_LIBS
set to ON. The resulting build (and install) tree will provide both
GNU-format and MS-format import libraries for the DLLs.
A C application built with MSVC and linked to the MinGW-built lapack
DLLs will run but requires the GNU runtime DLLs from MinGW to be available.
I tested this with both 32-bit and 64-bit builds. For the latter I used
the mingw64 gfortran. In both cases I just put the GNU runtime directory
in my PATH. I think both libgfortran-3.dll and libgcc_s_dw2-1.dll are
needed.
This may be used to create a binary LAPACK distribution for Windows that
will work without any GNU tools installed. One needs only to provide the
MinGW GNU runtime libraries along with blas.dll and lapack.dll.
-Brad
|
|
- Chuck Atkins (Kitware)
|
|
- Chuck Atkins (Kitware)
|
|
- Chuck Atkins (Kitware)
|
|
- Chuck Atkins (Kitware)
|
|
- Brad King (Kitware)
|
|
This reverts commit bc425c443232cf9737afcce38753f79963d31e0a.
|
|
|
|
- Chuck Atkins (Kitware)
|
|
- Chuck Atkins (Kitware)
|
|
2. Added CheckFortranIntSize.cmake to auto-determine the default integer size
3. Added more auto-detection features using integer size and compiler checks in FindBLAS.cmake
- Chuck Atkins (Kitware)
|
|
Fixed compiler flag check for SunPro to use ftrap=%none instead of ftrap=none.
- Chuck Atkins (Kitware)
|
|
2. Added libblas to ESSL libs to cover missing functionality from ESSL
3. Renamed ESSL_6464, ESSL_SMP, and ESSL_SMP_6464 to ESSL6464, ESSLSMP, and ESSLSMP6464 respectively to mimic the actual library names.
4. Added copyright notice to CheckLAPACKCompilerFlags
- Chuck Atkins (Kitware)
|
|
- Chuck Atkins (Kitware)
|
|
compilers and to enforce fixed-form for IBM compilers.
- Chuck Atkins (Kitware)
|
|
- Chuck Atkins (Kitware)
|
|
2. Changed LOOK_FOR_OPTIMIZED_BLAS to USE_OPTIMIZED_BLAS per CMake convention
3. Changed BLAS_VENDORS to use library names instead of manufacturer names:
From: BLAS_VENDORS=AMD;IBM;INTEL;HP;SUN etc
To: BLAS_VENDORS=ACML;ESSL;MKL;VECLIB;PERFLIB
This seems to be a more intuitive interface
4. Added support for Intel MKL single dynamic library
- Chuck Atkins (Kitware)
|
|
|
|
|
|
|
|
|