Forcing CMake to find static library

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Forcing CMake to find static library

Matthias Redies
Hello,

I am trying to force CMAKE to include a specific static lapack library,
set through the environment variable $LAPACK_LIB:

  > ls $LAPACK_LIB
libblas_extra.a  libcblas.a  liblapack.a  liblapacke.a libtmglib.a

  > echo $LAPACK_LIB
/bgsys/local/lapack/3.7.0/lib


This is how I am trying to do it in CMake:

cmake_minimum_required(VERSION 2.5)
project(TEST)

file(GLOB_RECURSE sources  src/*.f90)

add_executable(cmake.x ${sources})
find_library(MY_LAPACK liblapack.a HINTS $ENV{LAPACK_LIB}
NO_CMAKE_LIBRARY_PATH)

MESSAGE(STATUS "Lapack location: ${MY_LAPACK}")

target_link_libraries(cmake.x ${MY_LAPACK} ${MY_ESSL})

enable_language(Fortran)


If I run CMake this results in:

  > cmake .
-- Lapack location: /usr/lib64/liblapack.so
-- Configuring done
-- Generating done
-- Build files have been written to: /work/jias12/jias1217/lapack_test


How can I force CMake to find the correct library file and not some
random one laying around on the system?


Kind regards


Matthias



------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Forcing CMake to find static library

Michael Ellery
if you know exactly where the library is (via the ENV), then I guess you want to specify the NO_DEFAULT_PATH option to find_library. Alternatively, see if you can use the standard find module included with cmake:

https://github.com/Kitware/CMake/blob/master/Modules/FindLAPACK.cmake

..and in that case you could set LAPACK_ROOT using your ENV value.

HTH,
Mike

> On Jun 9, 2017, at 10:39 AM, Matthias Redies <[hidden email]> wrote:
>
> Hello,
>
> I am trying to force CMAKE to include a specific static lapack library,
> set through the environment variable $LAPACK_LIB:
>
> > ls $LAPACK_LIB
> libblas_extra.a  libcblas.a  liblapack.a  liblapacke.a libtmglib.a
>
> > echo $LAPACK_LIB
> /bgsys/local/lapack/3.7.0/lib
>
>
> This is how I am trying to do it in CMake:
>
> cmake_minimum_required(VERSION 2.5)
> project(TEST)
>
> file(GLOB_RECURSE sources  src/*.f90)
>
> add_executable(cmake.x ${sources})
> find_library(MY_LAPACK liblapack.a HINTS $ENV{LAPACK_LIB}
> NO_CMAKE_LIBRARY_PATH)
>
> MESSAGE(STATUS "Lapack location: ${MY_LAPACK}")
>
> target_link_libraries(cmake.x ${MY_LAPACK} ${MY_ESSL})
>
> enable_language(Fortran)
>
>
> If I run CMake this results in:
>
> > cmake .
> -- Lapack location: /usr/lib64/liblapack.so
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /work/jias12/jias1217/lapack_test
>
>
> How can I force CMake to find the correct library file and not some
> random one laying around on the system?
>
>
> Kind regards
>
>
> Matthias
>
>
>
> ------------------------------------------------------------------------------------------------
> ------------------------------------------------------------------------------------------------
> Forschungszentrum Juelich GmbH
> 52425 Juelich
> Sitz der Gesellschaft: Juelich
> Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
> Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
> Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
> Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
> Prof. Dr. Sebastian M. Schmidt
> ------------------------------------------------------------------------------------------------
> ------------------------------------------------------------------------------------------------
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Loading...