Skip to content

Commit

Permalink
Refactor cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
qubka committed Jun 15, 2024
1 parent ba0921d commit 64753c8
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 22 deletions.
61 changes: 48 additions & 13 deletions cmake/linux.cmake
Original file line number Diff line number Diff line change
@@ -1,18 +1,53 @@
add_definitions(-D_LINUX -DPOSIX -DLINUX -DGNUC -DCOMPILER_GCC -DPLATFORM_64BITS -D_GLIBCXX_USE_CXX11_ABI=0)
macro(set_common_compile_definitions TARGET_NAME)
target_compile_definitions(${TARGET_NAME} PRIVATE
META_IS_SOURCE2
_LINUX
POSIX
LINUX
GNUC
COMPILER_GCC
PLATFORM_64BITS
_GLIBCXX_USE_CXX11_ABI=0
)
endmacro()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dstrnicmp=strncasecmp -D_snprintf=snprintf")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp")
macro(set_additional_compile_definitions TARGET_NAME)
target_compile_definitions(${TARGET_NAME} PRIVATE
stricmp=strcasecmp
_stricmp=strcasecmp
_strnicmp=strncasecmp
strnicmp=strncasecmp
_snprintf=snprintf
_vsnprintf=vsnprintf
_alloca=alloca
strcmpi=strcasecmp
)
endmacro()

# Warnings
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-uninitialized -Wno-switch -Wno-unused")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-non-virtual-dtor -Wno-overloaded-virtual")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-conversion-null -Wno-write-strings")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -Wno-reorder")
macro(set_compile_options TARGET_NAME)
target_compile_options(${TARGET_NAME} PRIVATE
-Wall
-Wno-uninitialized
-Wno-switch
-Wno-unused
-Wno-non-virtual-dtor
-Wno-overloaded-virtual
-Wno-conversion-null
-Wno-write-strings
-Wno-invalid-offsetof
-Wno-reorder
-mfpmath=sse
-msse
-fno-strict-aliasing
-fno-threadsafe-statics
-v
-fvisibility=default
)
endmacro()

# Others
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse -msse -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-threadsafe-statics -v -fvisibility=default")
set_common_compile_definitions(${PROJECT_NAME})
set_additional_compile_definitions(${PROJECT_NAME})
set_compile_options(${PROJECT_NAME})

SET(PLUGIFY_LINK_LIBRARIES
${SOURCESDK_LIB}/linux64/libtier0.so
Expand All @@ -27,4 +62,4 @@ SET(PLUGIFY_LINK_LIBRARIES

if(NOT COMPILER_SUPPORTS_FORMAT)
set(PLUGIFY_LINK_LIBRARIES ${PLUGIFY_LINK_LIBRARIES} fmt::fmt-header-only)
endif()
endif()
2 changes: 0 additions & 2 deletions cmake/shared.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ set(METAMOD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/metamod-source)
set(SOURCESDK ${SOURCESDK_DIR})
set(SOURCESDK_LIB ${SOURCESDK}/lib)

add_definitions(-DMETA_IS_SOURCE2)

include_directories(
${SOURCESDK}
${SOURCESDK}/thirdparty/protobuf-3.21.8/src
Expand Down
35 changes: 28 additions & 7 deletions cmake/windows.cmake
Original file line number Diff line number Diff line change
@@ -1,11 +1,32 @@
add_definitions(
-DCOMPILER_MSVC -DCOMPILER_MSVC64 -D_WIN32 -D_WINDOWS -D_ALLOW_KEYWORD_MACROS -D__STDC_LIMIT_MACROS
-D_CRT_SECURE_NO_WARNINGS=1 -D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NONSTDC_NO_DEPRECATE=1
)
macro(set_common_compile_definitions TARGET_NAME)
target_compile_definitions(${TARGET_NAME} PRIVATE
META_IS_SOURCE2
COMPILER_MSVC
COMPILER_MSVC64
_WIN32
_WINDOWS
_ALLOW_KEYWORD_MACROS
__STDC_LIMIT_MACROS
_CRT_SECURE_NO_WARNINGS=1
_CRT_SECURE_NO_DEPRECATE=1
_CRT_NONSTDC_NO_DEPRECATE=1
)
endmacro()

# Define the macro to set MSVC specific compile options
macro(set_compile_options TARGET_NAME)
target_compile_options(${TARGET_NAME} PRIVATE
/wd4819
/wd4828
/wd5033
/permissive-
/utf-8
/wd4005
)
endmacro()

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4819 /wd4828 /wd5033 /permissive- /utf-8 /wd4005 /MP")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /OPT:REF /OPT:ICF")
set_common_compile_definitions(${PROJECT_NAME})
set_compile_options(${PROJECT_NAME})

set(PLUGIFY_LINK_LIBRARIES
${SOURCESDK_LIB}/public/win64/tier0.lib
Expand Down

0 comments on commit 64753c8

Please sign in to comment.