summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/CMakeDetermineCCompiler.cmake5
-rw-r--r--Modules/CMakeDetermineCXXCompiler.cmake5
-rw-r--r--Modules/CMakeDetermineSystem.cmake62
-rw-r--r--Modules/CMakeSystemSpecificInformation.cmake35
4 files changed, 107 insertions, 0 deletions
diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake
new file mode 100644
index 0000000..100412a
--- /dev/null
+++ b/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 )
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake
new file mode 100644
index 0000000..72ee90a
--- /dev/null
+++ b/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 )
diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake
new file mode 100644
index 0000000..5a0296a
--- /dev/null
+++ b/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)
+
diff --git a/Modules/CMakeSystemSpecificInformation.cmake b/Modules/CMakeSystemSpecificInformation.cmake
new file mode 100644
index 0000000..1615d9f
--- /dev/null
+++ b/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 "
+ "cmake@www.cmake.org 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)