1
0
Эх сурвалжийг харах

new cmake based configuration

Bill Hoffman 23 жил өмнө
parent
commit
b1114a344f

+ 5 - 0
Modules/CMakeDetermineCCompiler.cmake

@@ -0,0 +1,5 @@
+# determine the compiler to use for C programs
+# NOTE, a generator may set CMAKE_C_COMPILER before
+# loading this file to force a compiler.
+
+FIND_PROGRAM(CMAKE_C_COMPILER NAMES $ENV{CC} gcc cc cl bcc PATHS /bin /usr/bin /usr/local/bin )

+ 5 - 0
Modules/CMakeDetermineCXXCompiler.cmake

@@ -0,0 +1,5 @@
+# determine the compiler to use for C++ programs
+# NOTE, a generator may set CMAKE_CXX_COMPILER before
+# loading this file to force a compiler.
+
+FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES $ENV{CXX} c++ g++ CC aCC cl bcc PATHS /bin /usr/bin /usr/local/bin )

+ 62 - 0
Modules/CMakeDetermineSystem.cmake

@@ -0,0 +1,62 @@
+# This module is used by the Makefile generator to determin the following variables:
+# CMAKE_SYSTEM_NAME - on unix this is uname -s, for windows it is Windows
+# CMAKE_SYSTEM_VERSION - on unix this is uname -r, for windows it is empty
+# CMAKE_SYSTEM - ${CMAKE_SYSTEM}-${CMAKE_SYSTEM_VERSION}, for windows: ${CMAKE_SYSTEM}
+#
+#  Expected uname -s output:
+#
+# AIX                           AIX  
+# BSD/OS                        BSD/OS  
+# FreeBSD                       FreeBSD  
+# HP-UX                         HP-UX  
+# IRIX                          IRIX  
+# Linux                         Linux  
+# NetBSD                        NetBSD  
+# OpenBSD                       OpenBSD  
+# OFS/1 (Digital Unix)          OSF1  
+# SCO OpenServer 5              SCO_SV  
+# SCO UnixWare 7                UnixWare  
+# SCO UnixWare (pre release 7)  UNIX_SV  
+# SCO XENIX                     Xenix  
+# Solaris                       SunOS  
+# SunOS                         SunOS  
+# Tru64                         Tru64  
+# Ultrix                        ULTRIX  
+# cygwin                        CYGWIN_NT-5.1
+# MacOSX                        Darwin
+  
+IF(UNIX)
+  FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
+  IF(CMAKE_UNAME)
+    EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_SYSTEM_NAME)
+    EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
+    SET(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
+  ENDIF(CMAKE_UNAME)
+ELSE(UNIX)
+  IF(WIN32)
+    SET (CMAKE_SYSTEM_NAME "Windows")
+    SET (CMAKE_SYSTEM_VERSION "")
+  ENDIF(WIN32)
+ENDIF(UNIX)
+
+IF(NOT CMAKE_SYSTEM_NAME)
+  SET(CMAKE_SYSTEM_NAME "UnknownOS")
+ENDIF(NOT CMAKE_SYSTEM_NAME)
+
+# fix for BSD/OS , remove the /
+IF(CMAKE_SYSTEM_NAME MATCHES BSD.OS)
+  SET(CMAKE_SYSTEM_NAME BSDOS)
+ENDIF(CMAKE_SYSTEM_NAME MATCHES BSD.OS)
+
+# fix for CYGWIN which has windows version in it 
+IF(CMAKE_SYSTEM_NAME MATCHES CYGWIN)
+  SET(CMAKE_SYSTEM_NAME CYGWIN)
+ENDIF(CMAKE_SYSTEM_NAME MATCHES CYGWIN)
+
+# set CMAKE_SYSTEM to the CMAKE_SYSTEM_NAME
+SET(CMAKE_SYSTEM  ${CMAKE_SYSTEM_NAME})
+# if there is a CMAKE_SYSTEM_VERSION then add a -${CMAKE_SYSTEM_VERSION}
+IF(CMAKE_SYSTEM_VERSION)
+  SET(CMAKE_SYSTEM ${CMAKE_SYSTEM}-${CMAKE_SYSTEM_VERSION})
+ENDIF(CMAKE_SYSTEM_VERSION)
+

+ 35 - 0
Modules/CMakeSystemSpecificInformation.cmake

@@ -0,0 +1,35 @@
+# this module sets system information like how to build libraries
+# before including this file the system, C, and C++ compilers must
+# have already been determined.
+# This file first sets default variables that can be used for most
+# makefiles.  Next, it will include a system specific file.  Finally,
+# it will optionally include a system and compiler specific file that
+# can be used to override any of this information.
+
+
+# 1. set default values that will work for most system
+SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
+    "${CMAKE_CXX_COMPILE} ${CMAKE_SHARED_LIBRARY_CREATE_FLAGS} ${CMAKE_CXX_LINK_SHARED_OUT_FLAG} <TARGET> <OBJECTS>")
+
+SET(CMAKE_CXX_CREATE_AR_LIBRARY
+    "${CMAKE_AR} ${CMAKE_AR_FLAGS} <TARGET> <OBJECTS>")
+
+# 2. now include SystemName.cmake file to set the system specific information
+SET(CMAKE_SYSTEM_INFO_FILE ${CMAKE_ROOT}/Modules/${CMAKE_SYSTEM_NAME}.cmake)
+IF(EXISTS ${CMAKE_SYSTEM_INFO_FILE})
+  INCLUDE(${CMAKE_SYSTEM_INFO_FILE})
+ELSE(EXISTS ${CMAKE_SYSTEM_INFO_FILE})
+  MESSAGE("System is unknown to cmake, create:\n${CMAKE_SYSTEM_INFO_FILE}"
+          " to use this system, please send your config file to "
+          "[email protected] so it can be added to cmake"")
+ENDIF(EXISTS ${CMAKE_SYSTEM_INFO_FILE})
+
+
+# 3. include optional systemname-compiler.cmake files
+IF(CMAKE_C_COMPILER)
+  INCLUDE(${CMAKE_ROOT}/Modules/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER}.cmake OPTIONAL)
+ENDIF(CMAKE_C_COMPILER)
+IF(CMAKE_CXX_COMPILER)
+  INCLUDE(${CMAKE_ROOT}/Modules/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER}.cmake
+          OPTIONAL)
+ENDIF(CMAKE_CXX_COMPILER)