Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
moose
Manage
Activity
Members
Labels
Plan
Issues
9
Issue boards
Milestones
Wiki
Code
Merge requests
2
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Sahil Moza
moose
Commits
3060d78e
Commit
3060d78e
authored
8 years ago
by
Dilawar Singh
Browse files
Options
Downloads
Patches
Plain Diff
Updated CMake and FindGSL.
parent
8d590b82
No related branches found
No related tags found
1 merge request
!213
Update rmoogli.py
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
moose-core/CMakeLists.txt
+9
-7
9 additions, 7 deletions
moose-core/CMakeLists.txt
moose-core/cmake_modules/FindGSL.cmake
+81
-132
81 additions, 132 deletions
moose-core/cmake_modules/FindGSL.cmake
with
90 additions
and
139 deletions
moose-core/CMakeLists.txt
+
9
−
7
View file @
3060d78e
...
...
@@ -218,7 +218,7 @@ endif(NOT HDF5_FOUND)
if
(
HDF5_FOUND
)
add_definitions
(
-DUSE_HDF5
)
include_directories
(
${
HDF5_INCLUDE_DIRS
}
)
foreach
(
HDF5_LIB
${
HDF5_
CXX_LIBRARIES
}
${
HDF5_HL_
LIBRARIES
}
)
foreach
(
HDF5_LIB
${
HDF5_LIBRARIES
}
)
if
(
HDF5_LIB
)
get_filename_component
(
HDF5_LIB_EXT
${
HDF5_LIB
}
EXT
)
if
(
HDF5_LIB_EXT
)
...
...
@@ -269,14 +269,11 @@ if(WITH_BOOST)
list
(
APPEND SYSTEM_SHARED_LIBS
${
Boost_LIBRARIES
}
)
endif
(
WITH_BOOST
)
# These libraries could be static of dynamic.
# When building packages on OBS or launchpad, we build static library of a
# dependencies if a correct version is not found.
# Here we make sure that the correct static version is linked; if a correct
# shared version is found then link the shared version in SYSTEM_SHARED_LIBS.
# These libraries could be static of dynamic. We need to discrimate between
# these two types because of --whole-archive option. See
# BhallaLab/moose-core#66,
if
(
WITH_GSL
)
message
(
STATUS
"Using STATIC gsl libraries:
${
GSL_LIBRARIES
}
"
)
foreach
(
GSL_LIB
${
GSL_LIBRARIES
}
)
if
(
GSL_LIB
)
get_filename_component
(
GSL_LIB_EXT
${
GSL_LIB
}
EXT
)
...
...
@@ -351,6 +348,11 @@ list(APPEND MOOSE_LIBRARIES
basecode
)
# Make sure to remove duplicates.
list
(
REMOVE_DUPLICATES STATIC_LIBRARIES
)
if
(
SYSTEM_SHARED_LIBS
)
list
(
REMOVE_DUPLICATES SYSTEM_SHARED_LIBS
)
endif
(
)
# MAC linker does not understand many of gnu-ld options.
message
(
STATUS
"Shared libs:
${
SYSTEM_SHARED_LIBS
}
"
)
...
...
This diff is collapsed.
Click to expand it.
moose-core/cmake_modules/FindGSL.cmake
+
81
−
132
View file @
3060d78e
##
## Try to find gnu scientific library GSL
## (see http://www.gnu.org/software/gsl/)
## Once run this will define:
##
## GSL_FOUND = system has GSL lib
##
## GSL_LIBRARIES = full path to the libraries
## on Unix/Linux with additional linker flags from "gsl-config --libs"
##
## CMAKE_GSL_CXX_FLAGS = Unix compiler flags for GSL, essentially "`gsl-config --cxxflags`"
##
## GSL_INCLUDE_DIRS = where to find headers
##
## GSL_LINK_DIRECTORIES = link directories, useful for rpath on Unix
## GSL_EXE_LINKER_FLAGS = rpath on Unix
##
## Felix Woelk 07/2004
## minor corrections Jan Woetzel
##
## www.mip.informatik.uni-kiel.de
## --------------------------------
##
# Try to find gnu scientific library GSL
# (see http://www.gnu.org/software/gsl/)
# Once run this will define:
#
# GSL_FOUND = system has GSL lib
#
# GSL_LIBRARIES = full path to the libraries
# on Unix/Linux with additional linker flags from "gsl-config --libs"
#
# GSL_INCLUDE_DIRS = where to find headers
#
# GSL_USE_STATIC_LIBRARIES = Set it ON if you want to search for static
# libraries.
#
# Felix Woelk 07/2004
# minor corrections Jan Woetzel
#
# www.mip.informatik.uni-kiel.de
# --------------------------------
#
# Friday 18 November 2016 09:05:56 AM IST
# MODIFICATIONS: ## dilawars@ncbs.res.in, For the MOOSE project.
# This version does not use gsl-config file.
#
# Set this envrionment variable to search in this path first.
message
(
STATUS
"GSL_ROOT_DIR value $ENV{GSL_ROOT_DIR}"
)
IF
(
WIN32
)
SET
(
GSL_MINGW_PREFIX
"c:/msys/local"
)
SET
(
GSL_MSVC_PREFIX
"$ENV{LIB_DIR}"
)
FIND_LIBRARY
(
GSL_LIB gsl PATHS
${
GSL_MINGW_PREFIX
}
/lib
${
GSL_MSVC_PREFIX
}
/lib
)
#MSVC version of the lib is just called 'cblas'
FIND_LIBRARY
(
GSLCBLAS_LIB gslcblas cblas PATHS
${
GSL_MINGW_PREFIX
}
/lib
${
GSL_MSVC_PREFIX
}
/lib
)
FIND_PATH
(
GSL_INCLUDE_DIRS gsl/gsl_blas.h
${
GSL_MINGW_PREFIX
}
/include
${
GSL_MSVC_PREFIX
}
/include
)
SET
(
GSL_MINGW_PREFIX
"c:/msys/local"
)
SET
(
GSL_MSVC_PREFIX
"$ENV{LIB_DIR}"
)
FIND_LIBRARY
(
GSL_LIB gsl PATHS
${
GSL_MINGW_PREFIX
}
/lib
${
GSL_MSVC_PREFIX
}
/lib
)
#MSVC version of the lib is just called 'cblas'
FIND_LIBRARY
(
GSLCBLAS_LIB gslcblas cblas PATHS
${
GSL_MINGW_PREFIX
}
/lib
${
GSL_MSVC_PREFIX
}
/lib
)
FIND_PATH
(
GSL_INCLUDE_DIRS gsl/gsl_blas.h
${
GSL_MINGW_PREFIX
}
/include
${
GSL_MSVC_PREFIX
}
/include
)
IF
(
GSL_LIB AND GSLCBLAS_LIB
)
SET
(
GSL_LIBRARIES
${
GSL_LIB
}
${
GSLCBLAS_LIB
}
)
ENDIF
(
GSL_LIB AND GSLCBLAS_LIB
)
IF
(
GSL_LIB AND GSLCBLAS_LIB
)
SET
(
GSL_LIBRARIES
${
GSL_LIB
}
${
GSLCBLAS_LIB
}
)
ENDIF
(
GSL_LIB AND GSLCBLAS_LIB
)
ELSE
(
WIN32
)
IF
(
UNIX
)
SET
(
GSL_CONFIG_PREFER_PATH
"$ENV{GSL_ROOT_DIR}/bin"
)
# GSL_CONFIG must be cleared. This script may be called again after installing
# the proper version of gsl
if
(
EXISTS
"$ENV{GSL_ROOT_DIR}"
)
set
(
GSL_CONFIG
"$ENV{GSL_ROOT_DIR}/bin/gsl-config"
)
MESSAGE
(
STATUS
"gsl-config from environment variable:
${
GSL_CONFIG
}
"
)
set
(
GSL_INCLUDE_DIRS
)
set
(
GSL_LIBRARIES
)
set
(
GSL_VERSION
)
set
(
GSL_CONFIG_LIBS
)
else
()
FIND_PROGRAM
(
GSL_CONFIG gsl-config
${
GSL_CONFIG_PREFER_PATH
}
$ENV{LIB_DIR}/bin
/usr/local/bin/
/usr/bin/
)
endif
()
IF
(
GSL_CONFIG
)
# set CXXFLAGS to be fed into CXX_FLAGS by the user:
SET
(
GSL_CXX_FLAGS
"`
${
GSL_CONFIG
}
--cflags`"
)
# set INCLUDE_DIRS to prefix+include
EXEC_PROGRAM
(
${
GSL_CONFIG
}
ARGS --prefix
OUTPUT_VARIABLE GSL_PREFIX
)
SET
(
GSL_INCLUDE_DIRS
${
GSL_PREFIX
}
/include CACHE STRING INTERNAL
)
# set link libraries and link flags
EXEC_PROGRAM
(
${
GSL_CONFIG
}
ARGS --libs
OUTPUT_VARIABLE GSL_LIBRARIES
)
## extract link dirs for rpath
EXEC_PROGRAM
(
${
GSL_CONFIG
}
ARGS --libs
OUTPUT_VARIABLE GSL_CONFIG_LIBS
)
EXEC_PROGRAM
(
${
GSL_CONFIG
}
ARGS --version
OUTPUT_VARIABLE GSL_VERSION
)
## split off the link dirs (for rpath)
## use regular expression to match wildcard equivalent "-L*<endchar>"
## with <endchar> is a space or a semicolon
STRING
(
REGEX MATCHALL
"[-][L]([^ ;])+"
GSL_LINK_DIRECTORIES_WITH_PREFIX
"
${
GSL_CONFIG_LIBS
}
"
)
# MESSAGE("DBG GSL_LINK_DIRECTORIES_WITH_PREFIX=${GSL_LINK_DIRECTORIES_WITH_PREFIX}")
## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
IF
(
GSL_LINK_DIRECTORIES_WITH_PREFIX
)
STRING
(
REGEX REPLACE
"[-][L]"
""
GSL_LINK_DIRECTORIES
${
GSL_LINK_DIRECTORIES_WITH_PREFIX
}
)
ENDIF
(
GSL_LINK_DIRECTORIES_WITH_PREFIX
)
SET
(
GSL_EXE_LINKER_FLAGS
"-Wl,-rpath,
${
GSL_LINK_DIRECTORIES
}
"
CACHE STRING INTERNAL
)
# MESSAGE("DBG GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}")
# MESSAGE("DBG GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}")
IF
(
GSL_USE_STATIC_LIBRARIES
)
SET
(
GSL_LIB_NAMES libgsl.a
)
SET
(
GSL_CBLAS_LIB_NAMES libgslclabs.a
)
ELSE
(
GSL_USE_STATIC_LIBRARIES
)
SET
(
GSL_LIB_NAMES gsl
)
SET
(
GSL_CBLAS_LIB_NAMES gslcblas
)
ENDIF
(
)
FIND_LIBRARY
(
GSL_LIB
NAMES
${
GSL_LIB_NAMES
}
PATHS
$ENV{GSL_ROOT_DIR}/lib $ENV{GSL_ROOT_DIR}/lib64
/opt/lib /opt/lib64
)
FIND_LIBRARY
(
GSLCBLAS_LIB
NAMES
${
GSL_CBLAS_LIB_NAMES
}
PATHS
$ENV{GSL_ROOT_DIR}/lib $ENV{GSL_ROOT_DIR}/lib64
/opt/lib /opt/lib64
)
FIND_PATH
(
GSL_INCLUDE_DIRS NAMES gsl/gsl_blas.h gsl/gsl.h
PATHS
$ENV{GSL_ROOT_DIR}/include $ENV{GSL_ROOT_DIR}/include
/opt/include /opt/include
)
IF
(
GSL_LIB AND GSLCBLAS_LIB
)
SET
(
GSL_LIBRARIES
${
GSL_LIB
}
${
GSLCBLAS_LIB
}
)
ENDIF
(
GSL_LIB AND GSLCBLAS_LIB
)
# ADD_DEFINITIONS("-DHAVE_GSL")
# SET(GSL_DEFINITIONS "-DHAVE_GSL")
MARK_AS_ADVANCED
(
GSL_CXX_FLAGS
GSL_INCLUDE_DIRS
GSL_LIBRARIES
GSL_LINK_DIRECTORIES
GSL_DEFINITIONS
)
ELSE
(
GSL_CONFIG
)
IF
(
GSL_FIND_REQUIRED
)
MESSAGE
(
FATAL_ERROR
"Could not find gsl-config. Please set it manually. GSL_CONFIG=
${
GSL_CONFIG
}
"
)
ELSE
(
GSL_FIND_REQUIRED
)
MESSAGE
(
STATUS
"Could not find GSL"
)
# TODO: Avoid cmake complaints if GSL is not found
ENDIF
(
GSL_FIND_REQUIRED
)
ENDIF
(
GSL_CONFIG
)
ENDIF
(
UNIX
)
ENDIF
(
WIN32
)
IF
(
GSL_LIBRARIES
)
IF
(
GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS
)
SET
(
GSL_FOUND 1
)
MESSAGE
(
STATUS
"Using GSL from
${
GSL_PREFIX
}
"
)
ENDIF
(
GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS
)
IF
(
GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS
)
SET
(
GSL_FOUND 1
)
MESSAGE
(
STATUS
"Found GSL
${
GSL_LIBRARIES
}
"
)
ENDIF
(
GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS
)
ENDIF
(
GSL_LIBRARIES
)
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment