CMake fixes for Windows

Signed-off-by: Osyotr <Osyotr@users.noreply.github.com>
This commit is contained in:
Osyotr
2025-08-07 01:55:57 +03:00
committed by Konstantin Pastbin
parent 416b8ab95a
commit 4117cca562
7 changed files with 37 additions and 16 deletions

View File

@@ -4,7 +4,9 @@ set(FT_DISABLE_HARFBUZZ ON)
add_subdirectory(freetype)
# Fix warning with ONE_PIXEL macro clash.
target_compile_options(freetype PRIVATE -Wno-macro-redefined)
if(NOT MSVC)
target_compile_options(freetype PRIVATE -Wno-macro-redefined)
endif()
# Use ft2build.h from the current directory instead of the default.
target_include_directories(freetype

View File

@@ -11,14 +11,23 @@ target_include_directories(${PROJECT_NAME}
harfbuzz/src
)
# Keep these settigns in sync with xcode/harfbuzz project.
target_compile_options(${PROJECT_NAME}
PRIVATE
-fno-rtti
-fno-exceptions
-fno-threadsafe-statics
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wno-format-pedantic>
)
if (MSVC)
target_compile_options(${PROJECT_NAME}
PRIVATE
/GR-
/EHsc-
/Zc:threadSafeInit-
)
else()
# Keep these settings in sync with xcode/harfbuzz project.
target_compile_options(${PROJECT_NAME}
PRIVATE
-fno-rtti
-fno-exceptions
-fno-threadsafe-statics
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wno-format-pedantic>
)
endif()
target_compile_definitions(${PROJECT_NAME}
PRIVATE
@@ -28,14 +37,20 @@ target_compile_definitions(${PROJECT_NAME}
#$<$<BOOL:${APPLE}>:HAVE_CORETEXT>
HAVE_ATEXIT
HAVE_GETPAGESIZE
HAVE_MMAP
HAVE_MPROTECT
HAVE_PTHREAD
HAVE_SYSCONF
HAVE_SYS_MMAN_H
HAVE_UNISTD_H
)
if (NOT MSVC)
target_compile_definitions(${PROJECT_NAME}
PRIVATE
HAVE_MMAP
HAVE_PTHREAD
HAVE_SYS_MMAN_H
HAVE_UNISTD_H
)
endif()
target_link_libraries(${PROJECT_NAME} Freetype::Freetype)
add_library(harfbuzz::harfbuzz ALIAS harfbuzz)

View File

@@ -172,6 +172,7 @@ add_library(icuuc
icu/icu4c/source/common/uvector.cpp
icu/icu4c/source/common/uvectr32.cpp
icu/icu4c/source/common/uvectr64.h
icu/icu4c/source/common/wintz.cpp
icu/icu4c/source/common/wintz.h
)

View File

@@ -11,6 +11,7 @@ set(SRC
protobuf/src/google/protobuf/message_lite.cc
protobuf/src/google/protobuf/repeated_field.cc
protobuf/src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc
protobuf/src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc
protobuf/src/google/protobuf/stubs/bytestream.cc
protobuf/src/google/protobuf/stubs/common.cc
protobuf/src/google/protobuf/stubs/int128.cc

View File

@@ -197,7 +197,7 @@ if (USE_PCH)
endif()
# Should be on the root level, not in 3party, so tests can get these dependencies.
if (PLATFORM_LINUX OR PLATFORM_WIN)
if (PLATFORM_LINUX)
find_package(ICU COMPONENTS uc i18n data REQUIRED)
find_package(Freetype REQUIRED)
find_package(harfbuzz REQUIRED)

View File

@@ -108,7 +108,9 @@ omim_add_library(${PROJECT_NAME} ${SRC})
# Exception for some of our math to work reliably.
# Ubuntu x86_64 gcc 14.2.0 ignores -fno-finite-math-only in debug builds without -O1
set_source_files_properties(fast_math.cpp PROPERTIES COMPILE_OPTIONS "-fno-finite-math-only;$<$<CONFIG:DEBUG>:-O1>")
if (NOT MSVC)
set_source_files_properties(fast_math.cpp PROPERTIES COMPILE_OPTIONS "-fno-finite-math-only;$<$<CONFIG:DEBUG>:-O1>")
endif()
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

View File

@@ -94,7 +94,7 @@ elseif(${PLATFORM_ANDROID})
)
else() # neither iPhone nor Android
# Find bash first, on Windows it can be either in Git or in WSL
find_program(BASH bash REQUIRED)
find_program(BASH bash REQUIRED HINTS "$ENV{ProgramFiles}/Git/bin")
# Generate version header file.
execute_process(COMMAND "${BASH}" tools/unix/version.sh qt_version
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}