From fe3751ecdb4f4631606ab9d65d26da85336274c5 Mon Sep 17 00:00:00 2001 From: Florian Meinicke Date: Thu, 10 Sep 2020 16:05:36 +0200 Subject: [PATCH] Fix CMakeLists.txt * Add `project` * Remove hardcoded values for controlling the library type (i.e. shared or static) in favour of using `BUILD_SHARED_LIBS` and letting CMake manage the rest * Fix linker error (at least on Windows w/ MinGW) that 'legacy_stdio_definitions.lib' couldn't be found --- CMakeLists.txt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e87ec47..8496e5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,23 @@ +project(QtZeroConf) + find_package(Qt5 COMPONENTS Core Network) + set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) -add_library(QtZeroConf STATIC + +add_library(QtZeroConf qzeroconfservice.h qzeroconfglobal.h qzeroconfservice.cpp qzeroconf.h ) +if(BUILD_SHARED_LIBS) + target_compile_definitions(QtZeroConf PRIVATE QT_BUILD_ZEROCONF_LIB) +else() + target_compile_definitions(QtZeroConf PUBLIC QZEROCONF_STATIC) +endif() + if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") target_sources(QtZeroConf PRIVATE avahi-qt/qt-watch.h @@ -39,9 +49,11 @@ if(WIN32) bonjour-sdk/dnssd_clientstub.c bonjour-sdk/dnssd_ipc.c ) - target_link_libraries(QtZeroConf PUBLIC ws2_32 "legacy_stdio_definitions.lib") + target_link_libraries(QtZeroConf PUBLIC ws2_32) + if(MSVC) + target_link_libraries(QtZeroConf PUBLIC "legacy_stdio_definitions.lib") + endif() target_compile_definitions(QtZeroConf PRIVATE - -DQZEROCONF_STATIC -DWIN32 -D_USRDLL -DMDNS_DEBUGMSGS=0 @@ -51,7 +63,6 @@ if(WIN32) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 -DNOT_HAVE_SA_LEN) - target_compile_definitions(QtZeroConf PUBLIC -DQZEROCONF_STATIC) target_include_directories(QtZeroConf PRIVATE "${CMAKE_CURRENT_LIST_DIR}/bonjour-sdk") endif()