mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-18 11:19:10 +00:00
Put compiler checks in their own cmake module
This commit is contained in:
@ -11,15 +11,8 @@ set(PRODUCT_LONG_NAME "Uru Live" CACHE STRING "Product Long Name")
|
||||
set(PRODUCT_UUID "ea489821-6c35-4bd0-9dae-bb17c585e680"
|
||||
CACHE STRING "Product UUID")
|
||||
|
||||
# Detect Clang compiler
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set(CMAKE_COMPILER_IS_CLANGXX 1)
|
||||
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
|
||||
# Require C++11
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||
endif()
|
||||
# Configure compile-time compiler-specific flags
|
||||
include(cmake/CompilerChecks.cmake)
|
||||
|
||||
# HeadSpin Configuration
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
@ -30,12 +23,6 @@ if(UNIX)
|
||||
endif(UNIX)
|
||||
# End HeadSpin Configuration
|
||||
|
||||
# Header file for globally-set confingure-time defines
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/hsCompilerSpecific.h.cmake
|
||||
${PROJECT_BINARY_DIR}/hsCompilerSpecific.h)
|
||||
include_directories(${PROJECT_BINARY_DIR})
|
||||
# End hsCompilerSpecific.h
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${Plasma_BINARY_DIR}/bin)
|
||||
|
||||
|
@ -8,48 +8,6 @@ add_definitions(-DPRODUCT_SHORT_NAME="${PRODUCT_SHORT_NAME}")
|
||||
add_definitions(-DPRODUCT_LONG_NAME="${PRODUCT_LONG_NAME}")
|
||||
add_definitions(-DPRODUCT_UUID="${PRODUCT_UUID}")
|
||||
|
||||
include(CheckTypeSize)
|
||||
|
||||
if(NOT WCHAR_BYTES)
|
||||
check_type_size("wchar_t" WCHAR_BYTES)
|
||||
if(NOT WCHAR_BYTES)
|
||||
message(FATAL_ERROR "Could not determine sizeof(wchar_t)")
|
||||
set(WCHAR_BYTES 0)
|
||||
endif()
|
||||
endif()
|
||||
add_definitions(-DWCHAR_BYTES=${WCHAR_BYTES})
|
||||
|
||||
if(NOT SIZEOF_LONG)
|
||||
check_type_size("long" SIZEOF_LONG)
|
||||
if(NOT SIZEOF_LONG)
|
||||
message(FATAL_ERROR "Could not determine sizeof(long)")
|
||||
set(SIZEOF_LONG 0)
|
||||
endif()
|
||||
endif()
|
||||
add_definitions(-DSIZEOF_LONG=${SIZEOF_LONG})
|
||||
|
||||
try_compile(HAVE_CPUID ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_cpuid.cpp
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
if(HAVE_CPUID)
|
||||
message("CPUID header found -- using hardware math acceleration when available")
|
||||
else()
|
||||
message("CPUID header not found -- using software math")
|
||||
endif()
|
||||
|
||||
try_compile(HAVE_CXX14_DEPRECATED_ATTR ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_deprecated_attribute.cpp
|
||||
COMPILE_DEFINITIONS -DTRY_ATTRIBUTE
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
try_compile(HAVE_GCC_DEPRECATED_ATTR ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_deprecated_attribute.cpp
|
||||
COMPILE_DEFINITIONS -DTRY_GCC_ATTR
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
try_compile(HAVE_MSVC_DEPRECATED_ATTR ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_deprecated_attribute.cpp
|
||||
COMPILE_DEFINITIONS -DTRY_MSVC_ATTR
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
|
||||
set(CoreLib_SOURCES
|
||||
HeadSpin.cpp
|
||||
hsBitVector.cpp
|
||||
|
57
cmake/CompilerChecks.cmake
Normal file
57
cmake/CompilerChecks.cmake
Normal file
@ -0,0 +1,57 @@
|
||||
# Detect Clang compiler
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set(CMAKE_COMPILER_IS_CLANGXX 1)
|
||||
endif()
|
||||
|
||||
# Require C++11
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||
endif()
|
||||
|
||||
|
||||
# Compile-time type size checks
|
||||
include(CheckTypeSize)
|
||||
|
||||
if(NOT WCHAR_BYTES)
|
||||
check_type_size("wchar_t" WCHAR_BYTES)
|
||||
if(NOT WCHAR_BYTES)
|
||||
message(FATAL_ERROR "Could not determine sizeof(wchar_t)")
|
||||
set(WCHAR_BYTES 0)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT SIZEOF_LONG)
|
||||
check_type_size("long" SIZEOF_LONG)
|
||||
if(NOT SIZEOF_LONG)
|
||||
message(FATAL_ERROR "Could not determine sizeof(long)")
|
||||
set(SIZEOF_LONG 0)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Check for CPUID headers
|
||||
try_compile(HAVE_CPUID ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_cpuid.cpp
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
if(HAVE_CPUID)
|
||||
message("CPUID header found -- using hardware math acceleration when available")
|
||||
else()
|
||||
message("CPUID header not found -- using software math")
|
||||
endif()
|
||||
|
||||
# Look for a supported "deprecated" attribute specifier.
|
||||
try_compile(HAVE_CXX14_DEPRECATED_ATTR ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_deprecated_attribute.cpp
|
||||
COMPILE_DEFINITIONS -DTRY_ATTRIBUTE
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
try_compile(HAVE_GCC_DEPRECATED_ATTR ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_deprecated_attribute.cpp
|
||||
COMPILE_DEFINITIONS -DTRY_GCC_ATTR
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
try_compile(HAVE_MSVC_DEPRECATED_ATTR ${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/cmake/check_deprecated_attribute.cpp
|
||||
COMPILE_DEFINITIONS -DTRY_MSVC_ATTR
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/hsCompilerSpecific.h.cmake
|
||||
${PROJECT_BINARY_DIR}/hsCompilerSpecific.h)
|
||||
include_directories(${PROJECT_BINARY_DIR})
|
@ -45,6 +45,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
#cmakedefine HAVE_CPUID
|
||||
|
||||
#define WCHAR_BYTES ${WCHAR_BYTES}
|
||||
#define SIZEOF_LONG ${SIZEOF_LONG}
|
||||
|
||||
#cmakedefine HAVE_CXX14_DEPRECATED_ATTR
|
||||
#cmakedefine HAVE_GCC_DEPRECATED_ATTR
|
||||
#cmakedefine HAVE_MSVC_DEPRECATED_ATTR
|
||||
|
Reference in New Issue
Block a user