From fe97a03033c8731ded971ca0a6c86cebd2b047b6 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Wed, 10 Jun 2020 22:56:53 +0300 Subject: [PATCH] Fix shared library building failure on Windows with non MSVC For example, now we can built shared library on Window with MinGW. This changes improve features added in #1467. --- CMakeLists.txt | 11 +++++------ cmake/version.rc.in | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f8941df3..5d16e8cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,16 +131,15 @@ if(NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO) list(APPEND SPDLOG_SRCS src/fmt.cpp) endif() -if(WIN32 AND SPDLOG_BUILD_SHARED) - list(APPEND SPDLOG_SRCS ${CMAKE_CURRENT_BINARY_DIR}/version.rc) -endif() - if(SPDLOG_BUILD_SHARED) + if(WIN32) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) + list(APPEND SPDLOG_SRCS ${CMAKE_CURRENT_BINARY_DIR}/version.rc) + endif() add_library(spdlog SHARED ${SPDLOG_SRCS} ${SPDLOG_ALL_HEADERS}) target_compile_definitions(spdlog PUBLIC SPDLOG_SHARED_LIB) - if(WIN32) + if(MSVC) target_compile_options(spdlog PUBLIC /wd4251 /wd4275) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) endif() if(NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO) target_compile_definitions(spdlog PRIVATE FMT_EXPORT PUBLIC FMT_SHARED) diff --git a/cmake/version.rc.in b/cmake/version.rc.in index ef537189..a86c1385 100644 --- a/cmake/version.rc.in +++ b/cmake/version.rc.in @@ -1,5 +1,5 @@ #define APSTUDIO_READONLY_SYMBOLS -#include "winres.h" +#include #undef APSTUDIO_READONLY_SYMBOLS LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US