Adam Johnson
11 years ago
9 changed files with 148 additions and 47 deletions
@ -0,0 +1,53 @@ |
|||||||
|
# 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) |
||||||
|
|
||||||
|
configure_file(${PROJECT_SOURCE_DIR}/cmake/hsCompilerSpecific.h.cmake |
||||||
|
${PROJECT_BINARY_DIR}/hsCompilerSpecific.h) |
||||||
|
include_directories(${PROJECT_BINARY_DIR}) |
@ -0,0 +1,20 @@ |
|||||||
|
#include <cstdio> |
||||||
|
|
||||||
|
#if defined(TRY_ATTRIBUTE) |
||||||
|
[[deprecated("derp_func is deprecated -- use func instead")]] |
||||||
|
#elif defined(TRY_GCC_ATTR) |
||||||
|
__attribute__((deprecated("derp_func is deprecated -- use func instead"))) |
||||||
|
#else |
||||||
|
# error "DERP" |
||||||
|
#endif |
||||||
|
void derp_func() |
||||||
|
{ |
||||||
|
// This is deprecated
|
||||||
|
fputs("derp\n", stdout); |
||||||
|
} |
||||||
|
|
||||||
|
int main(int argc, char *argv[]) |
||||||
|
{ |
||||||
|
derp_func(); |
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,54 @@ |
|||||||
|
/*==LICENSE==* |
||||||
|
|
||||||
|
CyanWorlds.com Engine - MMOG client, server and tools |
||||||
|
Copyright (C) 2011 Cyan Worlds, Inc. |
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify |
||||||
|
it under the terms of the GNU General Public License as published by |
||||||
|
the Free Software Foundation, either version 3 of the License, or |
||||||
|
(at your option) any later version. |
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, |
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
GNU General Public License for more details. |
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License |
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
Additional permissions under GNU GPL version 3 section 7 |
||||||
|
|
||||||
|
If you modify this Program, or any covered work, by linking or |
||||||
|
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, |
||||||
|
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent |
||||||
|
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK |
||||||
|
(or a modified version of those libraries), |
||||||
|
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, |
||||||
|
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG |
||||||
|
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the |
||||||
|
licensors of this Program grant you additional |
||||||
|
permission to convey the resulting work. Corresponding Source for a |
||||||
|
non-source form of such a combination shall include the source code for |
||||||
|
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered |
||||||
|
work. |
||||||
|
|
||||||
|
You can contact Cyan Worlds, Inc. by email legal@cyan.com |
||||||
|
or by snail mail at: |
||||||
|
Cyan Worlds, Inc. |
||||||
|
14617 N Newport Hwy |
||||||
|
Mead, WA 99021 |
||||||
|
|
||||||
|
*==LICENSE==*/ |
||||||
|
|
||||||
|
#ifndef _hs_Compiler_Specific_H |
||||||
|
#define _hs_Compiler_Specific_H |
||||||
|
|
||||||
|
#cmakedefine HAVE_CPUID |
||||||
|
|
||||||
|
#define WCHAR_BYTES ${WCHAR_BYTES} |
||||||
|
#define SIZEOF_LONG ${SIZEOF_LONG} |
||||||
|
|
||||||
|
#cmakedefine HAVE_CXX14_DEPRECATED_ATTR |
||||||
|
#cmakedefine HAVE_GCC_DEPRECATED_ATTR |
||||||
|
|
||||||
|
#endif |
Loading…
Reference in new issue