Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make Hello World example works with mingw
[simgrid.git] / doc / HelloWorld / FindPCRE.cmake
1 ### SET THE LIBRARY EXTENSION AND GCC VERSION
2 if(APPLE) #MAC
3         set(LIB_EXE "dylib")
4 else(APPLE)
5     if(WIN32) #WINDOWS
6         set(LIB_EXE "a")
7         set(BIN_EXE ".exe")
8     else(WIN32) #UNIX
9             set(LIB_EXE "so")
10     endif(WIN32)
11 endif(APPLE)
12
13 find_library(PATH_PCRE_LIB 
14         NAMES pcre
15     HINTS
16     $ENV{SIMGRID_PCRE_LIBRARY_PATH}
17     $ENV{LD_LIBRARY_PATH}
18     $ENV{PCRE_LIBRARY_PATH}
19     PATH_SUFFIXES lib/ GnuWin32/lib
20     PATHS
21     /opt
22     /opt/local
23     /opt/csw
24     /sw
25     /usr)
26     
27 string(REGEX MATCH ".dll.a" operation "${PATH_PCRE_LIB}")
28
29 if(NOT operation)
30     if(WIN32)
31            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-DPCRE_STATIC ")
32     endif(WIN32)
33 endif(NOT operation)
34
35 find_path(PATH_PCRE_H "pcre.h"
36     HINTS
37     $ENV{SIMGRID_PCRE_LIBRARY_PATH}
38     $ENV{LD_LIBRARY_PATH}
39     $ENV{PCRE_LIBRARY_PATH}
40     PATH_SUFFIXES include/ GnuWin32/include
41     PATHS
42     /opt
43     /opt/local
44     /opt/csw
45     /sw
46     /usr)
47
48 message(STATUS "Looking for pcre.h")
49 if(PATH_PCRE_H)
50 message(STATUS "Looking for pcre.h - found")
51 else(PATH_PCRE_H)
52 message(STATUS "Looking for pcre.h - not found")
53 endif(PATH_PCRE_H)
54
55 message(STATUS "Looking for lib pcre")
56 if(PATH_PCRE_LIB)
57 message(STATUS "Looking for lib pcre - found")
58 else(PATH_PCRE_LIB)
59 message(STATUS "Looking for lib pcre - not found")
60 endif(PATH_PCRE_LIB)
61
62 if(WIN32)
63     find_path(PATH_PCRE_LICENCE "LICENCE"
64         HINTS
65         $ENV{SIMGRID_PCRE_LIBRARY_PATH}
66         $ENV{LD_LIBRARY_PATH}
67         $ENV{PCRE_LIBRARY_PATH}
68         PATH_SUFFIXES GnuWin32
69         PATHS
70         /opt
71         /opt/local
72         /opt/csw
73         /sw
74         /usr)
75     message(STATUS "Looking for pcre licence")
76     if(PATH_PCRE_LICENCE)
77     message(STATUS "Looking for pcre licence - found")
78     else(PATH_PCRE_LICENCE)
79     message(STATUS "Looking for pcre licence - not found")
80     endif(PATH_PCRE_LICENCE)
81 endif(WIN32)
82
83 if(PATH_PCRE_LIB AND PATH_PCRE_H)
84     string(REGEX REPLACE "/libpcre.*[.]${LIB_EXE}$" "" PATHLIBPCRE "${PATH_PCRE_LIB}")
85     string(REGEX REPLACE "/pcre.h" "" PATH_PCRE_H "${PATH_PCRE_H}")
86     string(REGEX MATCH "-L${PATHLIBPCRE} " operation "${CMAKE_C_FLAGS}")
87         if(NOT operation)
88             SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-L${PATHLIBPCRE} ")
89         endif(NOT operation)
90         string(REGEX MATCH "-I${PATH_PCRE_H} " operation "${CMAKE_C_FLAGS}")
91         if(NOT operation)
92             SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${PATH_PCRE_H} ")
93         endif(NOT operation)       
94 else(PATH_PCRE_LIB)
95     message(FATAL_ERROR "Please install the libpcre3-dev package or equivalent before using SimGrid.")
96 endif(PATH_PCRE_LIB AND PATH_PCRE_H)
97     
98 mark_as_advanced(PATH_PCRE_H)
99 mark_as_advanced(PATH_PCRE_LIB)