Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Implement RED module for ns3 into simgrid code.
[simgrid.git] / buildtools / Cmake / Modules / FindNS3.cmake
1 find_library(HAVE_NS3_LIB
2     NAME ns3
3     HINTS
4     $ENV{LD_LIBRARY_PATH}
5     $ENV{HOME}
6     PATH_SUFFIXES lib64 lib ns3/lib
7     PATHS
8     /opt
9     /opt/local
10     /opt/csw
11     /sw
12     /usr
13     ${ns3_path}
14 )
15
16 find_library(HAVE_NS3_CORE_LIB
17     NAME ns3-core
18     HINTS
19     $ENV{LD_LIBRARY_PATH}
20     $ENV{HOME}
21     PATH_SUFFIXES lib64 lib ns3/lib
22     PATHS
23     /opt
24     /opt/local
25     /opt/csw
26     /sw
27     /usr
28     ${ns3_path}
29 )
30
31 find_path(HAVE_CORE_MODULE_H
32         NAME ns3/core-module.h
33     HINTS
34     $ENV{HOME}
35     PATH_SUFFIXES include ns3/include
36     PATHS
37     /opt
38     /opt/local
39     /opt/csw
40     /sw
41     /usr
42     ${ns3_path}
43 )
44
45 message(STATUS "Looking for core-module.h")
46 if(HAVE_CORE_MODULE_H)
47 message(STATUS "Looking for core-module.h - found")
48 else(HAVE_CORE_MODULE_H)
49 message(STATUS "Looking for core-module.h - not found")
50 endif(HAVE_CORE_MODULE_H)
51 mark_as_advanced(HAVE_CORE_MODULE_H)
52
53 message(STATUS "Looking for lib ns3")
54 if(HAVE_NS3_LIB)
55 message(STATUS "Looking for lib ns3 - found")
56 else(HAVE_NS3_LIB)
57 message(STATUS "Looking for lib ns3 - not found")
58 endif(HAVE_NS3_LIB)
59 mark_as_advanced(HAVE_NS3_LIB)
60
61 message(STATUS "Looking for lib ns3-core")
62 if(HAVE_NS3_CORE_LIB)
63 message(STATUS "Looking for lib ns3-core - found")
64 else(HAVE_NS3_CORE_LIB)
65 message(STATUS "Looking for lib ns3-core - not found")
66 endif(HAVE_NS3_CORE_LIB)
67 mark_as_advanced(HAVE_NS3_LIB)
68 mark_as_advanced(HAVE_NS3_CORE_LIB)
69
70 if(HAVE_CORE_MODULE_H)
71     if(HAVE_NS3_LIB)
72         message(STATUS "Warning: NS-3 version <= 3.10")
73         set(HAVE_NS3 1)
74         set(NS3_VERSION 310)
75         string(REPLACE "/libns3.${LIB_EXE}" ""  HAVE_NS3_LIB "${HAVE_NS3_LIB}")
76     endif(HAVE_NS3_LIB)
77     if(HAVE_NS3_CORE_LIB)
78         message(STATUS "NS-3 version > 3.10")
79         set(HAVE_NS3 1)
80         set(NS3_VERSION 312)
81         string(REPLACE "/libns3-core.${LIB_EXE}" ""  HAVE_NS3_LIB "${HAVE_NS3_CORE_LIB}")
82     endif(HAVE_NS3_CORE_LIB)
83 endif(HAVE_CORE_MODULE_H)
84
85 if(HAVE_NS3)
86         string(REGEX MATCH "${HAVE_NS3_LIB}" operation "$ENV{LD_LIBRARY_PATH}")
87         if(NOT operation)
88                 message(STATUS "Warning: To use NS-3 don't forget to set LD_LIBRARY_PATH with:  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HAVE_NS3_LIB}")
89                 set(HAVE_NS3 0)
90         else(NOT operation)
91         
92                 string(REGEX MATCH "-L${HAVE_NS3_LIB} " operation1 "${CMAKE_C_FLAGS}")
93                 if(NOT operation1)
94                         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-L${HAVE_NS3_LIB} ")
95                 endif(NOT operation1)
96                 
97                 string(REGEX MATCH "-I${HAVE_CORE_MODULE_H} " operation1 "${CMAKE_C_FLAGS}")
98                 if(NOT operation1)
99                         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${HAVE_CORE_MODULE_H} ")
100                 endif(NOT operation1)
101         
102                 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-I${HAVE_CORE_MODULE_H} -L${HAVE_NS3_LIB} ")
103         endif(NOT operation)            
104 else(HAVE_NS3)
105     message(STATUS "Warning: To use NS-3 Please install ns3 at least version 3.10 (http://www.nsnam.org/releases/)")
106 endif(HAVE_NS3)
107
108 if(HAVE_NS3 AND enable_supernovae)
109     set(enable_supernovae OFF)
110 endif(HAVE_NS3 AND enable_supernovae)