From: <th...@us...> - 2009-06-09 11:51:43
|
Revision: 7824 http://playerstage.svn.sourceforge.net/playerstage/?rev=7824&view=rev Author: thjc Date: 2009-06-09 11:51:41 +0000 (Tue, 09 Jun 2009) Log Message: ----------- Detect OS and dont set -Wall on solaris or win32 Modified Paths: -------------- code/stage/trunk/CMakeLists.txt Added Paths: ----------- code/stage/trunk/cmake/ code/stage/trunk/cmake/internal/ code/stage/trunk/cmake/internal/FindOS.cmake Modified: code/stage/trunk/CMakeLists.txt =================================================================== --- code/stage/trunk/CMakeLists.txt 2009-06-09 08:50:16 UTC (rev 7823) +++ code/stage/trunk/CMakeLists.txt 2009-06-09 11:51:41 UTC (rev 7824) @@ -26,6 +26,19 @@ MESSAGE (STATUS "${PROJECT_NAME} version ${VERSION}") +# Set where to find our internal CMake scripts +SET (PROJECT_CMAKE_DIR ${PROJECT_SOURCE_DIR}/cmake CACHE PATH "Location of CMake scripts") +# Determine the operating system in detail +INCLUDE (${PROJECT_CMAKE_DIR}/internal/FindOS.cmake) + +# Enable -Wall by default +IF (NOT PROJECT_OS_WIN AND NOT PROJECT_OS_SOLARIS) + # Using -Wall on Windows causes MSVC to produce thousands of warnings in its + # own standard headers, dramatically slowing down the build. + SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") +ENDIF (NOT PROJECT_OS_WIN AND NOT PROJECT_OS_SOLARIS) + ENABLE_TESTING() # Create the pkgconfig file Added: code/stage/trunk/cmake/internal/FindOS.cmake =================================================================== --- code/stage/trunk/cmake/internal/FindOS.cmake (rev 0) +++ code/stage/trunk/cmake/internal/FindOS.cmake 2009-06-09 11:51:41 UTC (rev 7824) @@ -0,0 +1,45 @@ +# Check the OS type. + +# CMake does not distinguish Linux from other Unices. +STRING (REGEX MATCH "Linux" PROJECT_OS_LINUX ${CMAKE_SYSTEM_NAME}) +# Nor *BSD +STRING (REGEX MATCH "BSD" PROJECT_OS_BSD ${CMAKE_SYSTEM_NAME}) +# Or Solaris. I'm seeing a trend, here +STRING (REGEX MATCH "SunOS" PROJECT_OS_SOLARIS ${CMAKE_SYSTEM_NAME}) + +# Windows is easy (for once) +IF (WIN32) + SET (PROJECT_OS_WIN TRUE BOOL INTERNAL) +ENDIF (WIN32) + +# Check if it's an Apple OS +IF (APPLE) + # Check if it's OS X or another MacOS (that's got to be pretty unlikely) + STRING (REGEX MATCH "Darwin" PROJECT_OS_OSX ${CMAKE_SYSTEM_NAME}) + IF (NOT PROJECT_OS_OSX) + SET (PROJECT_OS_MACOS TRUE BOOL INTERNAL) + ENDIF (NOT PROJECT_OS_OSX) +ENDIF (APPLE) + +# QNX +IF (QNXNTO) + SET (PROJECT_OS_QNX TRUE BOOL INTERNAL) +ENDIF (QNXNTO) + +IF (PROJECT_OS_LINUX) + MESSAGE (STATUS "Operating system is Linux") +ELSEIF (PROJECT_OS_BSD) + MESSAGE (STATUS "Operating system is BSD") +ELSEIF (PROJECT_OS_WIN) + MESSAGE (STATUS "Operating system is Windows") +ELSEIF (PROJECT_OS_OSX) + MESSAGE (STATUS "Operating system is Apple MacOS X") +ELSEIF (PROJECT_OS_MACOS) + MESSAGE (STATUS "Operating system is Apple MacOS (not OS X)") +ELSEIF (PROJECT_OS_QNX) + MESSAGE (STATUS "Operating system is QNX") +ELSEIF (PROJECT_OS_SOLARIS) + MESSAGE (STATUS "Operating system is Solaris") +ELSE (PROJECT_OS_LINUX) + MESSAGE (STATUS "Operating system is generic Unix") +ENDIF (PROJECT_OS_LINUX) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |