Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update some pipol scripts.
[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 find_path(HAVE_RED_QUEUE_H
46         NAME ns3/red-queue.h
47     HINTS
48     $ENV{HOME}
49     PATH_SUFFIXES include ns3/include
50     PATHS
51     /opt
52     /opt/local
53     /opt/csw
54     /sw
55     /usr
56     ${ns3_path}
57 )
58
59 message(STATUS "Looking for core-module.h")
60 if(HAVE_CORE_MODULE_H)
61 message(STATUS "Looking for core-module.h - found")
62 else(HAVE_CORE_MODULE_H)
63 message(STATUS "Looking for core-module.h - not found")
64 endif(HAVE_CORE_MODULE_H)
65 mark_as_advanced(HAVE_CORE_MODULE_H)
66
67 message(STATUS "Looking for red-queue.h")
68 if(HAVE_RED_QUEUE_H)
69 message(STATUS "Looking for red-queue.h - found")
70 else(HAVE_RED_QUEUE_H)
71 message(STATUS "Looking for red-queue.h - not found")
72 endif(HAVE_RED_QUEUE_H)
73 mark_as_advanced(HAVE_RED_QUEUE_H)
74
75 message(STATUS "Looking for lib ns3")
76 if(HAVE_NS3_LIB)
77 message(STATUS "Looking for lib ns3 - found")
78 else(HAVE_NS3_LIB)
79 message(STATUS "Looking for lib ns3 - not found")
80 endif(HAVE_NS3_LIB)
81 mark_as_advanced(HAVE_NS3_LIB)
82
83 message(STATUS "Looking for lib ns3-core")
84 if(HAVE_NS3_CORE_LIB)
85 message(STATUS "Looking for lib ns3-core - found")
86 else(HAVE_NS3_CORE_LIB)
87 message(STATUS "Looking for lib ns3-core - not found")
88 endif(HAVE_NS3_CORE_LIB)
89 mark_as_advanced(HAVE_NS3_LIB)
90 mark_as_advanced(HAVE_NS3_CORE_LIB)
91
92 if(HAVE_CORE_MODULE_H)
93     if(HAVE_NS3_LIB)
94         message(STATUS "Warning: NS-3 version <= 3.10")
95         set(HAVE_NS3 1)
96         set(NS3_VERSION 310)
97         string(REPLACE "/libns3.${LIB_EXE}" ""  HAVE_NS3_LIB "${HAVE_NS3_LIB}")
98     endif(HAVE_NS3_LIB)
99     if(HAVE_NS3_CORE_LIB)
100         message(STATUS "Warning: NS-3 version > 3.10")
101         set(HAVE_NS3 1)
102         set(NS3_VERSION 312)
103         string(REPLACE "/libns3-core.${LIB_EXE}" ""  HAVE_NS3_LIB "${HAVE_NS3_CORE_LIB}")
104     endif(HAVE_NS3_CORE_LIB)
105 endif(HAVE_CORE_MODULE_H)
106
107 if(HAVE_NS3)
108         string(REGEX MATCH "${HAVE_NS3_LIB}" operation "$ENV{LD_LIBRARY_PATH}")
109         if(NOT operation)
110                 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}")
111                 set(HAVE_NS3 0)
112         else(NOT operation)
113         
114                 string(REGEX MATCH "-L${HAVE_NS3_LIB} " operation1 "${CMAKE_C_FLAGS}")
115                 if(NOT operation1)
116                         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-L${HAVE_NS3_LIB} ")
117                 endif(NOT operation1)
118                 
119                 string(REGEX MATCH "-I${HAVE_CORE_MODULE_H} " operation1 "${CMAKE_C_FLAGS}")
120                 if(NOT operation1)
121                         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${HAVE_CORE_MODULE_H} ")
122                 endif(NOT operation1)
123         
124                 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-I${HAVE_CORE_MODULE_H} -L${HAVE_NS3_LIB} ")
125         endif(NOT operation)            
126 else(HAVE_NS3)
127     message(STATUS "Warning: To use NS-3 Please install ns3 at least version 3.10 (http://www.nsnam.org/releases/)")
128 endif(HAVE_NS3)
129
130 if(HAVE_NS3 AND enable_supernovae)
131     set(enable_supernovae OFF)
132 endif(HAVE_NS3 AND enable_supernovae)