Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't set gtnets flags if can't compile gtnets.
[simgrid.git] / buildtools / Cmake / Modules / FindGTnets.cmake
1 find_path(HAVE_RNGSTREAM_H RngStream.h
2     HINTS
3     $ENV{LD_LIBRARY_PATH}
4     PATH_SUFFIXES include include/gtnets
5     PATHS
6     /opt
7     /opt/local
8     /opt/csw
9     /sw
10     /usr
11 )
12
13 find_library(HAVE_GTNETS_LIB
14     NAME gtnets
15     HINTS
16     $ENV{LD_LIBRARY_PATH}
17     PATH_SUFFIXES lib64 lib lib64/gtnets lib/gtnets
18     PATHS
19     /opt
20     /opt/local
21     /opt/csw
22     /sw
23     /usr
24 )
25
26 string(REPLACE "/libgtnets.${LIB_EXE}" ""  GTNETS_LIB_PATH "${HAVE_GTNETS_LIB}")
27
28 if(HAVE_GTNETS_LIB AND HAVE_RNGSTREAM_H)
29
30         exec_program("${CMAKE_CXX_COMPILER} -I${HAVE_RNGSTREAM_H} -lgtnets -L${GTNETS_LIB_PATH} ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_gtnets.cpp " OUTPUT_VARIABLE COMPILE_GTNETS_VAR)        
31         if(COMPILE_GTNETS_VAR)
32                 SET(HAVE_GTNETS 0)
33         else(COMPILE_GTNETS_VAR)
34                 SET(HAVE_GTNETS 1)      
35                 
36                 string(REGEX MATCH "-L${GTNETS_LIB_PATH} " operation "${CMAKE_C_FLAGS}")
37                 if(NOT operation)
38                         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-L${GTNETS_LIB_PATH} ")
39                 endif(NOT operation)
40                 
41                 string(REGEX MATCH "-I${HAVE_RNGSTREAM_H} " operation "${CMAKE_C_FLAGS}")
42                 if(NOT operation)
43                         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${HAVE_RNGSTREAM_H} ")
44                 endif(NOT operation)
45                 
46                 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-I${HAVE_RNGSTREAM_H} -L${GTNETS_LIB_PATH} ")
47                 
48                 string(REGEX MATCH "${GTNETS_LIB_PATH}" operation "$ENV{LD_LIBRARY_PATH}")
49                 if(NOT operation)
50                         message(FATAL_ERROR "\n\nTo use GTNETS don't forget to set LD_LIBRARY_PATH with \n\texport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${GTNETS_LIB_PATH}\n\n")
51                 endif(NOT operation)
52                 
53         endif(COMPILE_GTNETS_VAR)
54
55 else(HAVE_GTNETS_LIB AND HAVE_RNGSTREAM_H)
56 message(STATUS "Gtnets is enable but can't find it. You should set LD_LIBRARY_PATH...")
57 endif(HAVE_GTNETS_LIB AND HAVE_RNGSTREAM_H)
58
59 message(STATUS "Looking for RngStream.h")
60 if(HAVE_RNGSTREAM_H)
61 message(STATUS "Looking for RngStream.h - found")
62 else(HAVE_RNGSTREAM_H)
63 message(STATUS "Looking for RngStream.h - not found")
64 endif(HAVE_RNGSTREAM_H)
65
66 message(STATUS "Looking for lib gtnets patch")
67 if(HAVE_GTNETS)
68 message(STATUS "Looking for lib gtnets patch - found")
69 else(HAVE_GTNETS)
70 message(STATUS "Looking for lib gtnets patch - not found")
71 endif(HAVE_GTNETS)
72
73 mark_as_advanced(HAVE_GTNETS_LIB)
74 mark_as_advanced(HAVE_RNGSTREAM_H)