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