# # This file is part of the AzerothCore Project. See AUTHORS file for Copyright information # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Set build-directive (used in core to tell which buildtype we used) target_compile_definitions(acore-compile-option-interface INTERFACE -D_BUILD_DIRECTIVE="${CMAKE_BUILD_TYPE}") set(GCC_EXPECTED_VERSION 8.0.0) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS GCC_EXPECTED_VERSION) message(FATAL_ERROR "GCC: This project requires version ${GCC_EXPECTED_VERSION} to build but found ${CMAKE_CXX_COMPILER_VERSION}") else() message(STATUS "GCC: Minimum version required is ${GCC_EXPECTED_VERSION}, found ${CMAKE_CXX_COMPILER_VERSION} - ok!") endif() if(PLATFORM EQUAL 32) # Required on 32-bit systems to enable SSE2 (standard on x64) target_compile_options(acore-compile-option-interface INTERFACE -msse2 -mfpmath=sse) endif() target_compile_definitions(acore-compile-option-interface INTERFACE -DHAVE_SSE2 -D__SSE2__) message(STATUS "GCC: SFMT enabled, SSE2 flags forced") if( WITH_WARNINGS ) target_compile_options(acore-warning-interface INTERFACE -W -Wall -Wextra -Winit-self -Winvalid-pch -Wfatal-errors -Woverloaded-virtual) message(STATUS "GCC: All warnings enabled") endif() if( WITH_COREDEBUG ) target_compile_options(acore-compile-option-interface INTERFACE -g3) message(STATUS "GCC: Debug-flags set (-g3)") endif() if(BUILD_SHARED_LIBS) target_compile_options(acore-compile-option-interface INTERFACE -fPIC -Wno-attributes) target_compile_options(acore-hidden-symbols-interface INTERFACE -fvisibility=hidden) # Should break the build when there are ACORE_*_API macros missing # but it complains about missing references in precompiled headers. # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--no-undefined") # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-undefined") message(STATUS "GCC: Enabled shared linking") endif()