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
This commit is contained in:
Florian Meinicke
2020-09-10 16:05:36 +02:00
parent 26521fb848
commit fe3751ecdb

View File

@@ -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()