OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I686LINUX / util / I686LINUX / share / CMake / Modules / CMakeSystemSpecificInformation.cmake
1 # this module sets system information like how to build libraries
2 # before including this file the system, C, and C++ compilers must
3 # have already been determined.
4 # This file first sets default variables that can be used for most
5 # makefiles.  Next, it will include a system specific file.  Finally,
6 # it will optionally include a system and compiler specific file that
7 # can be used to override any of this information.
8 # For debugging new systems, and expert users, if the
9 # CMAKE_USER_MAKE_RULES_OVERRIDE is set to a file name, that
10 # file will be included last, and can override any variable
11
12
13 # 1. set default values that will work for most system
14
15 # suffix that needs to be added onto a library to link it .lib on windows
16 # not used on most unix systems
17 SET(CMAKE_LINK_LIBRARY_SUFFIX "")  
18
19 SET(CMAKE_STATIC_LIBRARY_PREFIX "lib")
20 SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
21 SET(CMAKE_SHARED_LIBRARY_PREFIX "lib")          # lib
22 SET(CMAKE_SHARED_LIBRARY_SUFFIX ".so")          # .so
23 SET(CMAKE_DL_LIBS "-ldl")
24 SET(CMAKE_SHARED_LIBRARY_C_FLAGS "")            # -pic 
25 SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared")       # -shared
26 SET(CMAKE_SHARED_LIBRARY_LINK_FLAGS "")         # +s, flag for exe link to use shared lib
27 SET(CMAKE_SHARED_LIBRARY_RUNTIME_FLAG "")       # -rpath
28 SET(CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP "")   # : or empty
29 SET(CMAKE_LIBRARY_PATH_FLAG "-L")
30 SET(CMAKE_LINK_LIBRARY_FLAG "-l")
31 IF(CMAKE_COMPILER_IS_GNUCXX)
32   SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC")     # -pic 
33   SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC")   # -pic
34 ENDIF(CMAKE_COMPILER_IS_GNUCXX)
35
36
37 SET (CMAKE_SKIP_RPATH "NO" CACHE BOOL
38      "If set, runtime paths are not added when using shared libraries.")
39 MARK_AS_ADVANCED(CMAKE_SKIP_RPATH)
40 # 2. now include SystemName.cmake file to set the system specific information
41 SET(CMAKE_SYSTEM_INFO_FILE ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}.cmake)
42 IF(EXISTS ${CMAKE_SYSTEM_INFO_FILE})
43   INCLUDE(${CMAKE_SYSTEM_INFO_FILE})
44 ELSE(EXISTS ${CMAKE_SYSTEM_INFO_FILE})
45   MESSAGE("System is unknown to cmake, create:\n${CMAKE_SYSTEM_INFO_FILE}"
46           " to use this system, please send your config file to "
47           "cmake@www.cmake.org so it can be added to cmake")
48   IF(EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt)
49     CONFIGURE_FILE(${CMAKE_BINARY_DIR}/CMakeCache.txt
50                    ${CMAKE_BINARY_DIR}/CopyOfCMakeCache.txt COPYONLY)
51     MESSAGE("You CMakeCache.txt file was copied to CopyOfCMakeCache.txt. " 
52             "Please send that file to cmake@www.cmake.org.")
53   ENDIF(EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt)
54 ENDIF(EXISTS ${CMAKE_SYSTEM_INFO_FILE})
55
56 # 3. include optional systemname-compiler.cmake files
57 IF(CMAKE_C_COMPILER)
58   GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_C_COMPILER} NAME_WE)
59   # since the gnu compiler has several names force gcc
60   IF(CMAKE_COMPILER_IS_GNUCC)
61      SET(CMAKE_BASE_NAME gcc)
62   ENDIF(CMAKE_COMPILER_IS_GNUCC)
63   SET(CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE 
64       ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
65   INCLUDE(${CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE} OPTIONAL)
66 ENDIF(CMAKE_C_COMPILER)
67 IF(CMAKE_CXX_COMPILER)
68   GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
69   # since the gnu compiler has several names force gcc
70   IF(CMAKE_COMPILER_IS_GNUCXX)
71      SET(CMAKE_BASE_NAME g++)
72   ENDIF(CMAKE_COMPILER_IS_GNUCXX)
73   SET(CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE
74       ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
75   INCLUDE(${CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE} OPTIONAL)
76 ENDIF(CMAKE_CXX_COMPILER)
77
78
79 # for most systems a module is the same as a shared library
80 # so unless the variable CMAKE_MODULE_EXISTS is set just
81 # copy the values from the LIBRARY variables
82 IF(NOT CMAKE_MODULE_EXISTS)
83   SET(CMAKE_SHARED_MODULE_C_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
84   SET(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS})
85   SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
86   SET(CMAKE_SHARED_MODULE_PREFIX ${CMAKE_SHARED_LIBRARY_PREFIX})
87   SET(CMAKE_SHARED_MODULE_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
88   SET(CMAKE_SHARED_MODULE_LINK_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_FLAGS})
89   SET(CMAKE_SHARED_MODULE_RUNTIME_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_FLAG})
90   SET(CMAKE_SHARED_MODULE_RUNTIME_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP})
91 ENDIF(NOT CMAKE_MODULE_EXISTS)
92
93
94 # Create a set of shared library variable specific to C++
95 # For 90% of the systems, these are the same flags as the C versions
96 # so if these are not set just copy the flags from the c version
97 IF(NOT CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS)
98   SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
99 ENDIF(NOT CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS)
100
101 IF(NOT CMAKE_SHARED_LIBRARY_CXX_FLAGS)
102   SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
103 ENDIF(NOT CMAKE_SHARED_LIBRARY_CXX_FLAGS)
104
105 IF(NOT CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS)
106   SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_FLAGS})
107 ENDIF(NOT CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS)
108
109 IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG)
110   SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_FLAG}) 
111 ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG)
112
113 IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP)
114   SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP})
115 ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP)
116
117 # repeat for modules
118 IF(NOT CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS)
119   SET(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS})
120 ENDIF(NOT CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS)
121
122 IF(NOT CMAKE_SHARED_MODULE_CXX_FLAGS)
123   SET(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS})
124 ENDIF(NOT CMAKE_SHARED_MODULE_CXX_FLAGS)
125
126 IF(NOT CMAKE_SHARED_MODULE_LINK_CXX_FLAGS)
127   SET(CMAKE_SHARED_MODULE_LINK_CXX_FLAGS ${CMAKE_SHARED_MODULE_LINK_FLAGS})
128 ENDIF(NOT CMAKE_SHARED_MODULE_LINK_CXX_FLAGS)
129
130 IF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG)
131   SET(CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG ${CMAKE_SHARED_MODULE_RUNTIME_FLAG}) 
132 ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG)
133
134 IF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP)
135   SET(CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_MODULE_RUNTIME_FLAG_SEP})
136 ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP)
137
138 # include default rules that work for most unix like systems and compilers
139 # this file will not set anything if it is already set
140 INCLUDE(${CMAKE_ROOT}/Modules/CMakeDefaultMakeRuleVariables.cmake)
141
142 IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
143    INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE})
144 ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE)
145
146 SET(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make.  This is useful for debugging only.")
147
148 SET (CMAKE_INSTALL_PREFIX    /usr/local CACHE PATH 
149      "Install path prefix, prepended onto install directories.")
150
151 # add the flags to the cache based
152 # on the initial values computed in the platform/*.cmake files
153 # use _INIT variables so that this only happens the first time
154 # and you can set these flags in the cmake cache
155 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_ENV_INIT} $ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS_INIT}" CACHE STRING
156      "Flags used by the compiler during all build types.")
157
158 SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS_ENV_INIT} $ENV{CFLAGS} ${CMAKE_C_FLAGS_INIT}" CACHE STRING
159      "Flags for C compiler.")
160
161 SET (CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS_INIT} $ENV{LDFLAGS}
162      CACHE STRING "Flags used by the linker.")
163
164 IF(NOT CMAKE_NOT_USING_CONFIG_FLAGS)
165 # default build type is none
166   IF(NOT CMAKE_NO_BUILD_TYPE)
167     SET (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE_INIT} CACHE STRING 
168       "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.")
169   ENDIF(NOT CMAKE_NO_BUILD_TYPE)
170
171   SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG_INIT}" CACHE STRING
172      "Flags used by the compiler during debug builds.")
173   SET (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT}" CACHE STRING
174       "Flags used by the compiler during release minsize builds.")
175   SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE_INIT}" CACHE STRING
176      "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).")
177   SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING
178      "Flags used by the compiler during Release with Debug Info builds.")
179   SET (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG_INIT}" CACHE STRING
180       "Flags used by the compiler during debug builds.")
181   SET (CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL_INIT}" CACHE STRING
182       "Flags used by the compiler during release minsize builds.")
183   SET (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE_INIT}" CACHE STRING
184      "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).")
185   SET (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING
186      "Flags used by the compiler during Release with Debug Info builds.")
187
188   SET (CMAKE_EXE_LINKER_FLAGS_DEBUG ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT} CACHE STRING
189      "Flags used by the linker during debug builds.")
190
191   SET (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT} CACHE STRING
192      "Flags used by the linker during release minsize builds.")
193
194   SET (CMAKE_EXE_LINKER_FLAGS_RELEASE ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT} "" CACHE STRING
195      "Flags used by the linker during release builds.")
196
197   SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO 
198      ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT} CACHE STRING
199      "Flags used by the linker during Release with Debug Info builds.")
200   
201   SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT} CACHE STRING
202      "Flags used by the linker during debug builds.")
203
204   SET (CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL ${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL_INIT}
205      CACHE STRING
206      "Flags used by the linker during release minsize builds.")
207
208   SET (CMAKE_SHARED_LINKER_FLAGS_RELEASE ${CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT} "" CACHE STRING
209      "Flags used by the linker during release builds.")
210
211   SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO 
212      ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT} CACHE STRING
213      "Flags used by the linker during Release with Debug Info builds.")
214
215   SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG ${CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT} CACHE STRING
216      "Flags used by the linker during debug builds.")
217
218   SET (CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL ${CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL_INIT}
219      CACHE STRING
220      "Flags used by the linker during release minsize builds.")
221
222   SET (CMAKE_MODULE_LINKER_FLAGS_RELEASE ${CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT} "" CACHE STRING
223      "Flags used by the linker during release builds.")
224
225   SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO 
226      ${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT} CACHE STRING
227      "Flags used by the linker during Release with Debug Info builds.")
228 ENDIF(NOT CMAKE_NOT_USING_CONFIG_FLAGS)
229
230
231
232 # shared linker flags
233 SET (CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS_INIT} $ENV{LDFLAGS}
234      CACHE STRING "Flags used by the linker during the creation of dll's.")
235
236 # module linker flags
237 SET (CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS_INIT} $ENV{LDFLAGS}
238      CACHE STRING "Flags used by the linker during the creation of modules.")
239
240 SET(CMAKE_BUILD_TOOL ${CMAKE_MAKE_PROGRAM} CACHE INTERNAL 
241      "What is the target build tool cmake is generating for.")
242
243 MARK_AS_ADVANCED(
244 CMAKE_BUILD_TOOL
245 CMAKE_VERBOSE_MAKEFILE 
246 CMAKE_CXX_FLAGS
247 CMAKE_CXX_FLAGS_RELEASE
248 CMAKE_CXX_FLAGS_RELWITHDEBINFO
249 CMAKE_CXX_FLAGS_MINSIZEREL
250 CMAKE_CXX_FLAGS_DEBUG
251
252 CMAKE_C_FLAGS
253 CMAKE_C_FLAGS_DEBUG
254 CMAKE_C_FLAGS_MINSIZEREL
255 CMAKE_C_FLAGS_RELEASE
256 CMAKE_C_FLAGS_RELWITHDEBINFO
257
258 CMAKE_EXE_LINKER_FLAGS
259 CMAKE_EXE_LINKER_FLAGS_DEBUG
260 CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
261 CMAKE_EXE_LINKER_FLAGS_RELEASE
262 CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
263
264 CMAKE_SHARED_LINKER_FLAGS
265 CMAKE_SHARED_LINKER_FLAGS_DEBUG
266 CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
267 CMAKE_SHARED_LINKER_FLAGS_RELEASE
268 CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
269
270 CMAKE_MODULE_LINKER_FLAGS
271 CMAKE_MODULE_LINKER_FLAGS_DEBUG
272 CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
273 CMAKE_MODULE_LINKER_FLAGS_RELEASE
274 CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
275
276 )
277 IF(NOT UNIX)
278   MARK_AS_ADVANCED(CMAKE_INSTALL_PREFIX)
279 ENDIF(NOT UNIX)
280
281 SET(CMAKE_SYSTEM_SPECIFIC_INFORMATION_LOADED 1)