start to add cmake support for dks6 branch.
This commit is contained in:
45
cmake/FindDKS.cmake
Normal file
45
cmake/FindDKS.cmake
Normal file
@ -0,0 +1,45 @@
|
||||
#--- FindDKS ------------------------------------------------------------------
|
||||
#
|
||||
# This module defines:
|
||||
# DKS_INCLUDE_DIR, where to find DKSBaseMuSR.h
|
||||
# DKS_LIBRARY, shared library to be linked against if using DKS
|
||||
#
|
||||
# **as35** since I currently also maintaing the DKS library, it should add
|
||||
# a DKSConfig.cmake which eventually will make this module obsolate. This
|
||||
# means this module is only a kick starter.
|
||||
|
||||
find_path(DKS_INCLUDE_DIR DKSBaseMuSR.h
|
||||
HINTS "/usr/include" "/opt/local/include" "$ENV{HOME}/Apps/DKS/exec/include"
|
||||
)
|
||||
|
||||
# find position of DKSBaseMuSR.h from the end
|
||||
string(FIND "${DKS_INCLUDE_DIR}" "/DKSBaseMuSR.h" pos REVERSE)
|
||||
# truncate the string
|
||||
string(SUBSTRING "${DKS_INCLUDE_DIR}" 0 ${pos} substr)
|
||||
set(DKS_INCLUDE_DIR ${substr})
|
||||
unset(substr)
|
||||
|
||||
find_library(DKS_LIBRARY dksshared
|
||||
HINTS "/usr/lib" "/usr/lib64" "/opt/local/lib" "$ENV{HOME}/Apps/DKS/exec/lib"
|
||||
)
|
||||
|
||||
# as35 set here the DKS version explicitly. This is VERY ugly and should be fixed
|
||||
# asap by using a package
|
||||
set(DKS_VERSION "1.1.3")
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set DKS_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
find_package_handle_standard_args(DKS
|
||||
REQUIRED_VARS DKS_LIBRARY DKS_INCLUDE_DIR
|
||||
VERSION_VAR DKS_VERSION)
|
||||
|
||||
if (NOT DKS_FOUND)
|
||||
unset(DKS_LIBRARY)
|
||||
endif (NOT DKS_FOUND)
|
||||
|
||||
mark_as_advanced(
|
||||
DKS_INCLUDE_DIR
|
||||
DKS_LIBRARY
|
||||
)
|
||||
|
151
cmake/FindFFTW3.cmake
Normal file
151
cmake/FindFFTW3.cmake
Normal file
@ -0,0 +1,151 @@
|
||||
# - Find fftw3 library
|
||||
# Find the native FFTW3 includes and library
|
||||
# This module defines
|
||||
# FFTW3_INCLUDE_DIR, where to find fftw3.h, etc.
|
||||
# ---
|
||||
# FFTW3_LIBRARY, library to link against to use FFTW3
|
||||
# FFTW3_OMP_LIBRARY, library to link against to use FFTW3_omp
|
||||
# FFTW3_THREADS_LIBRARY, library to link against to use FFTW3_threads
|
||||
# FFTW3_FOUND, if false, do not try to use FFTW3.
|
||||
# FFTW3_OMP_FOUND, if false, do not try to use OpenMP FFTW3.
|
||||
# FFTW3_THREADS_FOUND, if false, do not try to use threaded FFTW3.
|
||||
# ---
|
||||
# FFTW3L_LIBRARY, library to link against to use FFTW3l
|
||||
# FFTW3L_OMP_LIBRARY, library to link against to use FFTW3l_omp
|
||||
# FFTW3L_THREADS_LIBRARY, library to link against to use FFTW3l_threads
|
||||
# FFTW3L_FOUND, if false, do not try to use FFTW3l.
|
||||
# FFTW3L_OMP_FOUND, if false, do not try to use OpenMP FFTW3l.
|
||||
# FFTW3L_THREADS_FOUND, if false, do not try to use threaded FFTW3l.
|
||||
# ---
|
||||
# FFTW3F_LIBRARY, library to link against to use FFTW3f
|
||||
# FFTW3F_OMP_LIBRARY, library to link against to use FFTW3f_omp
|
||||
# FFTW3F_THREADS_LIBRARY, library to link against to use FFTW3f_threads
|
||||
# FFTW3F_FOUND, if false, do not try to use FFTW3f.
|
||||
# FFTW3F_OMP_FOUND, if false, do not try to use OpenMP FFTW3f.
|
||||
# FFTW3F_THREADS_FOUND, if false, do not try to use threaded FFTW3f.
|
||||
# ---
|
||||
# FFTW3Q_LIBRARY, library to link against to use FFTW3q
|
||||
# FFTW3Q_OMP_LIBRARY, library to link against to use FFTW3q_omp
|
||||
# FFTW3Q_THREADS_LIBRARY, library to link against to use FFTW3q_threads
|
||||
# FFTW3Q_FOUND, if false, do not try to use FFTW3q.
|
||||
# FFTW3Q_OMP_FOUND, if false, do not try to use OpenMP FFTW3q.
|
||||
# FFTW3Q_THREADS_FOUND, if false, do not try to use threaded FFTW3q.
|
||||
|
||||
find_path(FFTW3_INCLUDE_DIR fftw3.h
|
||||
HINTS "/usr/include" "/opt/local/include"
|
||||
)
|
||||
|
||||
# find position of fftw3.h from the end
|
||||
string(FIND "${FFTW3_INCLUDE_DIR}" "/fftw3.h" pos REVERSE)
|
||||
# truncate the string
|
||||
string(SUBSTRING "${FFTW3_INCLUDE_DIR}" 0 ${pos} substr)
|
||||
set(FFTW3_INCLUDE_DIR ${substr})
|
||||
unset(substr)
|
||||
|
||||
find_library(FFTW3_LIBRARY fftw3)
|
||||
find_library(FFTW3_OMP_LIBRARY fftw3_omp)
|
||||
find_library(FFTW3_THREAD_LIBRARY fftw3_threads)
|
||||
find_library(FFTW3L_LIBRARY fftw3l)
|
||||
find_library(FFTW3L_OMP_LIBRARY fftw3l_omp)
|
||||
find_library(FFTW3L_THREAD_LIBRARY fftw3l_threads)
|
||||
find_library(FFTW3F_LIBRARY fftw3f)
|
||||
find_library(FFTW3F_OMP_LIBRARY fftw3f_omp)
|
||||
find_library(FFTW3F_THREAD_LIBRARY fftw3f_threads)
|
||||
find_library(FFTW3Q_LIBRARY fftw3q)
|
||||
find_library(FFTW3Q_OMP_LIBRARY fftw3q_omp)
|
||||
find_library(FFTW3Q_THREAD_LIBRARY fftw3q_threads)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set FFTW3_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
find_package_handle_standard_args(FFTW3
|
||||
REQUIRED_VARS FFTW3_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3_OMP
|
||||
REQUIRED_VARS FFTW3_OMP_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3_THREAD
|
||||
REQUIRED_VARS FFTW3_THREAD_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
|
||||
find_package_handle_standard_args(FFTW3L
|
||||
REQUIRED_VARS FFTW3L_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3L_OMP
|
||||
REQUIRED_VARS FFTW3L_OMP_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3L_THREAD
|
||||
REQUIRED_VARS FFTW3L_THREAD_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
|
||||
find_package_handle_standard_args(FFTW3F
|
||||
REQUIRED_VARS FFTW3F_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3F_OMP
|
||||
REQUIRED_VARS FFTW3F_OMP_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3F_THREAD
|
||||
REQUIRED_VARS FFTW3F_THREAD_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
|
||||
find_package_handle_standard_args(FFTW3Q
|
||||
REQUIRED_VARS FFTW3Q_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3Q_OMP
|
||||
REQUIRED_VARS FFTW3Q_OMP_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
find_package_handle_standard_args(FFTW3Q_THREAD
|
||||
REQUIRED_VARS FFTW3Q_THREAD_LIBRARY FFTW3_INCLUDE_DIR
|
||||
VERSION_VAR "3")
|
||||
|
||||
if (NOT FFTW3_FOUND)
|
||||
unset(FFTW3_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3_OMP_FOUND)
|
||||
unset(FFTW3_OMP_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3_THREAD_FOUND)
|
||||
unset(FFTW3_THREAD_LIBRARY)
|
||||
endif()
|
||||
|
||||
if (NOT FFTW3L_FOUND)
|
||||
unset(FFTW3L_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3L_OMP_FOUND)
|
||||
unset(FFTW3L_OMP_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3L_THREAD_FOUND)
|
||||
unset(FFTW3L_THREAD_LIBRARY)
|
||||
endif()
|
||||
|
||||
if (NOT FFTW3F_FOUND)
|
||||
unset(FFTW3F_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3F_OMP_FOUND)
|
||||
unset(FFTW3F_OMP_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3F_THREAD_FOUND)
|
||||
unset(FFTW3F_THREAD_LIBRARY)
|
||||
endif()
|
||||
|
||||
if (NOT FFTW3Q_FOUND)
|
||||
unset(FFTW3Q_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3Q_OMP_FOUND)
|
||||
unset(FFTW3Q_OMP_LIBRARY)
|
||||
endif()
|
||||
if (NOT FFTW3Q_THREAD_FOUND)
|
||||
unset(FFTW3Q_THREAD_LIBRARY)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
FFTW3_INCLUDE_DIR
|
||||
FFTW3_LIBRARY FFTW3_OMP_LIBRARY FFTW3_THREAD_LIBRARY
|
||||
FFTW3L_LIBRARY FFTW3L_OMP_LIBRARY FFTW3L_THREAD_LIBRARY
|
||||
FFTW3F_LIBRARY FFTW3F_OMP_LIBRARY FFTW3F_THREAD_LIBRARY
|
||||
FFTW3Q_LIBRARY FFTW3Q_OMP_LIBRARY FFTW3Q_THREAD_LIBRARY
|
||||
)
|
||||
|
||||
if (FFTW3_FOUND)
|
||||
message("-- Found FFTW3: ${FFTW3_INCLUDE_DIR}")
|
||||
endif (FFTW3_FOUND)
|
34
cmake/FindMXML.cmake
Normal file
34
cmake/FindMXML.cmake
Normal file
@ -0,0 +1,34 @@
|
||||
# - find MXML
|
||||
# find the MXML lib and includes
|
||||
# This module defines
|
||||
# LIBMXML_INCLUDE_DIR, where to find mxml.h
|
||||
# LIBMXML_LIBRARY, library to link against
|
||||
# LIBMXML_FOUND, if false, do not try to use the MXML lib
|
||||
|
||||
find_path(LIBMXML_INCLUDE_DIR mxml.h
|
||||
HINT "/usr/include"
|
||||
)
|
||||
# find position of mxml.h from the end
|
||||
string(FIND "${LIBMXML_INCLUDE_DIR}" "/mxml.h" pos REVERSE)
|
||||
# truncate the string
|
||||
string(SUBSTRING "${LIBMXML_INCLUDE_DIR}" 0 ${pos} substr)
|
||||
set(LIBMXML_INCLUDE_DIR ${substr})
|
||||
unset(substr)
|
||||
|
||||
find_library(LIBMXML_LIBRARY mxml)
|
||||
|
||||
# get version string
|
||||
# currently do not know from where to get it automatically
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set LIBMXML_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MXML
|
||||
REQUIRED_VARS LIBMXML_LIBRARY LIBMXML_INCLUDE_DIR)
|
||||
|
||||
if (NOT LIBMXML_FOUND)
|
||||
unset(LIBMXML_LIBRARY)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LIBMXML_INCLUDE_DIR LIBMXML_LIBRARY)
|
||||
|
45
cmake/FindNeXus.cmake
Normal file
45
cmake/FindNeXus.cmake
Normal file
@ -0,0 +1,45 @@
|
||||
# - Find NeXus library
|
||||
# Find the native NEXUS includes and library
|
||||
# This module defines
|
||||
# NEXUS_INCLUDE_DIR, where to find NeXus.h, etc.
|
||||
# NEXUS_LIBRARY, library to link against to use NEXUS
|
||||
# NEXUS_FOUND, if false, do not try to use NEXUS.
|
||||
|
||||
find_path(NEXUS_INCLUDE_DIR napi.h
|
||||
HINTS "/usr/local/include" "/opt/nexus/include" "/usr/local/include/nexus"
|
||||
)
|
||||
# find position of napi.h from the end
|
||||
string(FIND "${NEXUS_INCLUDE_DIR}" "/napi.h" pos REVERSE)
|
||||
# truncate the string
|
||||
string(SUBSTRING "${NEXUS_INCLUDE_DIR}" 0 ${pos} substr)
|
||||
set(NEXUS_INCLUDE_DIR ${substr})
|
||||
unset(substr)
|
||||
|
||||
find_library(NEXUS_LIBRARY NeXus
|
||||
HINTS "/usr/lib" "/usr/lib64" "/usr/local/lib" "/usr/local/lib64" "/opt/nexus/lib")
|
||||
|
||||
# get version string
|
||||
if (NEXUS_INCLUDE_DIR AND EXISTS ${NEXUS_INCLUDE_DIR}/napi.h)
|
||||
file(STRINGS "${NEXUS_INCLUDE_DIR}/napi.h" NEXUS_version_str
|
||||
REGEX "^#define[\t ]+NEXUS_VERSION[\t ].*")
|
||||
|
||||
string(REGEX REPLACE "^#define[\t ]+NEXUS_VERSION[\t ]+\"([^\"]*).*"
|
||||
"\\1" NEXUS_VERSION_STRING "${NEXUS_version_str}")
|
||||
unset(NEXUS_version_str)
|
||||
endif()
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set NEXUS_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(NEXUS
|
||||
REQUIRED_VARS NEXUS_LIBRARY NEXUS_INCLUDE_DIR
|
||||
VERSION_VAR NEXUS_VERSION_STRING)
|
||||
|
||||
if (NOT NEXUS_FOUND)
|
||||
unset(NEXUS_LIBRARY)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(NEXUS_INCLUDE_DIR NEXUS_LIBRARY)
|
||||
|
||||
|
||||
|
67
cmake/config.h.in
Normal file
67
cmake/config.h.in
Normal file
@ -0,0 +1,67 @@
|
||||
// config.h
|
||||
|
||||
#define PACKAGE_VERSION "@PROJECT_VERSION@"
|
||||
|
||||
// define to 1 if you have fork and it should be used
|
||||
#cmakedefine HAVE_FORK 1
|
||||
|
||||
// define to 1 if you have <alloca.h> and it should be used
|
||||
#cmakedefine HAVE_ALLOCA_H 1
|
||||
|
||||
// Define to 1 if you have the <dlfcn.h> header file.
|
||||
#cmakedefine HAVE_DLFCN_H 1
|
||||
|
||||
// Define to 1 if you have the `erf' function.
|
||||
#cmakedefine HAVE_ERF 1
|
||||
|
||||
// Define to 1 if you have the `getloadavg' function.
|
||||
#cmakedefine HAVE_GETLOADAVG 1
|
||||
|
||||
// Define to 1 if gomp is available */
|
||||
#cmakedefine HAVE_GOMP 1
|
||||
|
||||
// Define to 1 if you have the <inttypes.h> header file.
|
||||
#cmakedefine HAVE_INTTYPES_H 1
|
||||
|
||||
// Define to 1 if the type `long double' works and has more range or precision than `double'.
|
||||
#cmakedefine HAVE_LONG_DOUBLE 1
|
||||
|
||||
// Define to 1 if the type `long double' works and has more range or precision than `double'.
|
||||
#cmakedefine HAVE_LONG_DOUBLE_WIDER 1
|
||||
|
||||
// Define to 1 if fftw3f_threads are available
|
||||
#cmakedefine HAVE_LIBFFTW3F_THREADS 1
|
||||
|
||||
// Define to 1 if fftw3_threads are available
|
||||
#cmakedefine HAVE_LIBFFTW3_THREADS 1
|
||||
|
||||
// Define to 1 if you have the <memory.h> header file.
|
||||
#cmakedefine HAVE_MEMORY_H 1
|
||||
|
||||
// Define to 1 if you have the `powl' function.
|
||||
#cmakedefine HAVE_POWL 1
|
||||
|
||||
// Define to 1 if you have the `shmget' function.
|
||||
#cmakedefine HAVE_SHMGET 1
|
||||
|
||||
// Define to 1 if you have the <stdint.h> header file.
|
||||
#cmakedefine HAVE_STDINT_H 1
|
||||
|
||||
// Define to 1 if you have the <stdlib.h> header file.
|
||||
#cmakedefine HAVE_STDLIB_H 1
|
||||
|
||||
// Define to 1 if you have the <string.h> header file.
|
||||
#cmakedefine HAVE_STRING_H 1
|
||||
|
||||
// Define to 1 if you have the <strings.h> header file.
|
||||
#cmakedefine HAVE_STRINGS_H 1
|
||||
|
||||
// Define to 1 if you have the <sys/stat.h> header file.
|
||||
#cmakedefine HAVE_SYS_STAT_H 1
|
||||
|
||||
// Define to 1 if you have the <sys/types.h> header file.
|
||||
#cmakedefine HAVE_SYS_TYPES_H 1
|
||||
|
||||
// Define to 1 if you have the <unistd.h> header file.
|
||||
#cmakedefine HAVE_UNISTD_H 1
|
||||
|
30
cmake/configure_musrfit_version_file.cmake.in
Normal file
30
cmake/configure_musrfit_version_file.cmake.in
Normal file
@ -0,0 +1,30 @@
|
||||
# configure_musrfit_version_file.cmake.in:
|
||||
set(SRC_DIR "@CMAKE_SOURCE_DIR@")
|
||||
set(BIN_DIR "@CMAKE_CURRENT_BINARY_DIR@")
|
||||
|
||||
# Set variables
|
||||
set(CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
|
||||
set(MUSRFIT_VERSION "@MUSRFIT_VERSION@")
|
||||
|
||||
# Get the current working branch
|
||||
execute_process(
|
||||
COMMAND git rev-parse --abbrev-ref HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
# Get the latest abbreviated commit hash of the working branch
|
||||
execute_process(
|
||||
COMMAND git log -1 --pretty="%h, %ci"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_CURRENT_SHA1
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
configure_file(
|
||||
${SRC_DIR}/cmake/git-revision.h.in
|
||||
${BIN_DIR}/git-revision.h
|
||||
@ONLY
|
||||
)
|
||||
# EOF
|
8
cmake/git-revision.h.in
Normal file
8
cmake/git-revision.h.in
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef GIT_VERSION_H
|
||||
#define GIT_VERSION_H
|
||||
|
||||
#define GIT_BRANCH "@GIT_BRANCH@"
|
||||
#define GIT_CURRENT_SHA1 @GIT_CURRENT_SHA1@
|
||||
|
||||
#endif // GIT_VERSION_H
|
||||
|
4
cmake/musrfit-info.h.in
Normal file
4
cmake/musrfit-info.h.in
Normal file
@ -0,0 +1,4 @@
|
||||
//--- This file is generated by cmake -----------------------------------------
|
||||
|
||||
#define MUSRFIT_PREFIX "@CMAKE_INSTALL_PREFIX@"
|
||||
#define MUSRFIT_DOC_DIR "@CMAKE_INSTALL_PREFIX@/share/doc/musrfit"
|
Reference in New Issue
Block a user