mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 13:04:35 +00:00
Compiler flag cleanup
This commit is contained in:
parent
addb977ef1
commit
37c93ba031
@ -72,17 +72,7 @@ endif()
|
|||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Set compiler specific flags
|
# Set compiler specific flags
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
if (UNIX)
|
|
||||||
add_definitions(-Wall)
|
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
|
||||||
add_definitions(-fvisibility=hidden)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
||||||
|
|
||||||
if (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
|
if (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
|
||||||
foreach (flag CMAKE_C_FLAGS
|
foreach (flag CMAKE_C_FLAGS
|
||||||
CMAKE_C_FLAGS_DEBUG
|
CMAKE_C_FLAGS_DEBUG
|
||||||
@ -125,12 +115,6 @@ if (MINGW)
|
|||||||
if (_GLFW_HAS_64ASLR)
|
if (_GLFW_HAS_64ASLR)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--high-entropy-va ${CMAKE_SHARED_LINKER_FLAGS}")
|
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--high-entropy-va ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# HACK: When building on MinGW, WINVER and UNICODE need to be defined before
|
|
||||||
# the inclusion of stddef.h (by glfw3.h), which is itself included before
|
|
||||||
# win32_platform.h. We define them here until a saner solution can be found
|
|
||||||
# NOTE: MinGW-w64 and Visual C++ do /not/ need this hack.
|
|
||||||
add_definitions(-DUNICODE -DWINVER=0x0501)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
@ -371,16 +355,6 @@ foreach(arg ${glfw_PKG_LIBS})
|
|||||||
set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} ${arg}")
|
set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} ${arg}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
# Choose library output name
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
if (BUILD_SHARED_LIBS AND UNIX)
|
|
||||||
# On Unix-like systems, shared libraries can use the soname system.
|
|
||||||
set(GLFW_LIB_NAME glfw)
|
|
||||||
else()
|
|
||||||
set(GLFW_LIB_NAME glfw3)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Create generated files
|
# Create generated files
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
@ -8,6 +8,10 @@ else()
|
|||||||
link_libraries(${glfw_LIBRARIES})
|
link_libraries(${glfw_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
include_directories("${GLFW_SOURCE_DIR}/include"
|
include_directories("${GLFW_SOURCE_DIR}/include"
|
||||||
"${GLFW_SOURCE_DIR}/deps")
|
"${GLFW_SOURCE_DIR}/deps")
|
||||||
|
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
|
|
||||||
include_directories("${GLFW_SOURCE_DIR}/src"
|
|
||||||
"${GLFW_BINARY_DIR}/src"
|
|
||||||
${glfw_INCLUDE_DIRS})
|
|
||||||
|
|
||||||
add_definitions(-D_GLFW_USE_CONFIG_H)
|
|
||||||
|
|
||||||
set(common_HEADERS internal.h
|
set(common_HEADERS internal.h
|
||||||
"${GLFW_BINARY_DIR}/src/glfw_config.h"
|
"${GLFW_BINARY_DIR}/src/glfw_config.h"
|
||||||
"${GLFW_SOURCE_DIR}/include/GLFW/glfw3.h"
|
"${GLFW_SOURCE_DIR}/include/GLFW/glfw3.h"
|
||||||
@ -58,37 +52,66 @@ endif()
|
|||||||
|
|
||||||
add_library(glfw ${glfw_SOURCES} ${glfw_HEADERS})
|
add_library(glfw ${glfw_SOURCES} ${glfw_HEADERS})
|
||||||
set_target_properties(glfw PROPERTIES
|
set_target_properties(glfw PROPERTIES
|
||||||
OUTPUT_NAME "${GLFW_LIB_NAME}"
|
|
||||||
VERSION ${GLFW_VERSION}
|
VERSION ${GLFW_VERSION}
|
||||||
SOVERSION ${GLFW_VERSION_MAJOR}
|
SOVERSION ${GLFW_VERSION_MAJOR}
|
||||||
POSITION_INDEPENDENT_CODE ON
|
POSITION_INDEPENDENT_CODE ON
|
||||||
FOLDER "GLFW3")
|
FOLDER "GLFW3")
|
||||||
|
|
||||||
|
target_compile_definitions(glfw PRIVATE -D_GLFW_USE_CONFIG_H)
|
||||||
|
target_include_directories(glfw PRIVATE
|
||||||
|
"${GLFW_SOURCE_DIR}/src"
|
||||||
|
"${GLFW_BINARY_DIR}/src"
|
||||||
|
${glfw_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# HACK: When building on MinGW, WINVER and UNICODE need to be defined before
|
||||||
|
# the inclusion of stddef.h (by glfw3.h), which is itself included before
|
||||||
|
# win32_platform.h. We define them here until a saner solution can be found
|
||||||
|
# NOTE: MinGW-w64 and Visual C++ do /not/ need this hack.
|
||||||
|
target_compile_definitions(glfw PRIVATE
|
||||||
|
"$<$<BOOL:${MINGW}>:UNICODE;WINVER=0x0501>")
|
||||||
|
|
||||||
|
# Enable a reasonable set of warnings (no, -Wextra is not reasonable)
|
||||||
|
target_compile_options(glfw PRIVATE
|
||||||
|
"$<$<C_COMPILER_ID:Clang>:-Wall>"
|
||||||
|
"$<$<C_COMPILER_ID:GNU>:-Wall>")
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
if (BUILD_SHARED_LIBS)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# The GLFW DLL needs a special compile-time macro and import library name
|
if (MINGW)
|
||||||
|
# Remove the lib prefix on the DLL (but not the import library
|
||||||
set_target_properties(glfw PROPERTIES PREFIX "")
|
set_target_properties(glfw PROPERTIES PREFIX "")
|
||||||
|
|
||||||
if (MINGW)
|
# Add a suffix to the import library to avoid naming conflicts
|
||||||
set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.a")
|
set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.a")
|
||||||
else()
|
else()
|
||||||
|
# Add a suffix to the import library to avoid naming conflicts
|
||||||
set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.lib")
|
set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.lib")
|
||||||
endif()
|
endif()
|
||||||
elseif (APPLE)
|
elseif (APPLE)
|
||||||
# Append -fno-common to the compile flags to work around a bug in
|
# Add -fno-common to work around a bug in Apple's GCC
|
||||||
# Apple's GCC
|
target_compile_options(glfw PRIVATE "-fno-common")
|
||||||
get_target_property(glfw_CFLAGS glfw COMPILE_FLAGS)
|
|
||||||
if (NOT glfw_CFLAGS)
|
|
||||||
set(glfw_CFLAGS "")
|
|
||||||
endif()
|
|
||||||
set_target_properties(glfw PROPERTIES
|
set_target_properties(glfw PROPERTIES
|
||||||
COMPILE_FLAGS "${glfw_CFLAGS} -fno-common"
|
|
||||||
INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
|
INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
|
||||||
|
elseif (UNIX)
|
||||||
|
# Hide symbols not explicitly tagged for export from the shared library
|
||||||
|
target_compile_options(glfw PRIVATE "-fvisibility=hidden")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(glfw ${glfw_LIBRARIES})
|
target_link_libraries(glfw ${glfw_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
target_compile_definitions(glfw PRIVATE _CRT_SECURE_NO_WARNINGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (BUILD_SHARED_LIBS AND UNIX)
|
||||||
|
# On Unix-like systems, shared libraries can use the soname system.
|
||||||
|
set_target_properties(glfw PROPERTIES OUTPUT_NAME glfw)
|
||||||
|
else()
|
||||||
|
set_target_properties(glfw PROPERTIES OUTPUT_NAME glfw3)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (GLFW_INSTALL)
|
if (GLFW_INSTALL)
|
||||||
install(TARGETS glfw EXPORT glfwTargets DESTINATION lib${LIB_SUFFIX})
|
install(TARGETS glfw EXPORT glfwTargets DESTINATION lib${LIB_SUFFIX})
|
||||||
endif()
|
endif()
|
||||||
|
@ -8,6 +8,10 @@ else()
|
|||||||
link_libraries(${glfw_LIBRARIES})
|
link_libraries(${glfw_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
include_directories("${GLFW_SOURCE_DIR}/include"
|
include_directories("${GLFW_SOURCE_DIR}/include"
|
||||||
"${GLFW_SOURCE_DIR}/deps")
|
"${GLFW_SOURCE_DIR}/deps")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user