Browse Source

remove windows in-place linkage

Let's use project-level dependencies instead.
Aleksey N. Vinogradov 10 months ago
parent
commit
06b025eae8

+ 1 - 0
api/libsphinxclient/CMakeLists.txt

@@ -24,6 +24,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIA
 else ()
 	target_compile_options ( sphinxclient PRIVATE -g3 -Wall -O0 )
 endif ()
+target_link_libraries ( sphinxclient PRIVATE $<$<PLATFORM_ID:Windows>:wsock32.lib> )
 
 if (NOT BUILD_TESTING OR DISABLE_GTESTS OR WIN32 OR TEST_SPECIAL_EXTERNAL )
 	return()

+ 0 - 3
api/libsphinxclient/sphinxclient.c

@@ -42,9 +42,6 @@
 	#include <io.h>
 	#include <winsock2.h>
 
-	#pragma comment(linker, "/defaultlib:wsock32.lib")
-	#pragma message("Automatically linking with wsock32.lib")
-
 	#ifndef EWOULDBLOCK
 		#define EWOULDBLOCK			WSAEWOULDBLOCK
 	#endif

+ 3 - 0
src/CMakeLists.txt

@@ -69,6 +69,8 @@ add_library ( lmanticore STATIC sphinx.cpp sphinxquery.cpp sphinxutils.cpp
 		aggrexpr.cpp joinsorter.cpp queuecreator.cpp exprgeodist.cpp exprremap.cpp exprdocstore.cpp schematransform.cpp
 		sortergroup.cpp sortertraits.cpp sorterprecalc.cpp querycontext.cpp skip_cache.cpp jsonsi.cpp sorterscroll.cpp )
 
+target_link_libraries ( lmanticore PRIVATE $<$<PLATFORM_ID:Windows>:dbghelp.lib AdvAPI32.lib ShLwApi.lib> )
+
 add_library ( lstem STATIC sphinxsoundex.cpp sphinxmetaphone.cpp sphinxstemen.cpp sphinxstemru.cpp sphinxstemru.inl
 		sphinxstemcz.cpp sphinxstemar.cpp )
 target_link_libraries ( lstem PUBLIC lextra )
@@ -261,6 +263,7 @@ add_library ( digest_sha1 digest_sha1.cpp )
 target_link_libraries ( digest_sha1 PRIVATE lextra )
 target_link_libraries ( lsearchd PUBLIC digest_sha1 lextra nlohmann_json::nlohmann_json )
 target_link_libraries ( lsearchd INTERFACE Boost::filesystem )
+target_link_libraries ( lsearchd PRIVATE $<$<PLATFORM_ID:Windows>:iphlpapi.lib WS2_32.lib wsock32.lib> )
 
 function (stackmock processors compiler versions config values)
 	if (NOT CMAKE_SYSTEM_PROCESSOR IN_LIST processors)

+ 0 - 3
src/fileutils.cpp

@@ -16,11 +16,8 @@
 
 #if _WIN32
 	#define getcwd		_getcwd
-
 	#include <shlwapi.h>
 
-	#pragma comment(linker, "/defaultlib:ShLwApi.Lib")
-	#pragma message("Automatically linking with ShLwApi.Lib")
 #else
 	#include <glob.h>
 #endif

+ 1 - 11
src/searchdaemon.cpp

@@ -21,19 +21,9 @@
 
 #if _WIN32
 	#define USE_PSI_INTERFACE 1
-	// for MAC address
 
+	// for MAC address
 	#include <iphlpapi.h>
-	#pragma message("Automatically linking with iphlpapi.lib")
-	#pragma comment(lib, "iphlpapi.lib")
-
-	#pragma comment(linker, "/defaultlib:WS2_32.Lib")
-	#pragma message("Automatically linking with WS2_32.Lib")
-
-	// socket function definitions
-	#pragma comment(linker, "/defaultlib:wsock32.lib")
-	#pragma message("Automatically linking with wsock32.lib")
-
 #else
 	#include <netdb.h>
 	// for MAC address

+ 0 - 1
src/searchdha.cpp

@@ -31,7 +31,6 @@
 	#include <WinSock2.h>
 	#include <MSWSock.h>
 	#include <WS2tcpip.h>
-#pragma comment(lib, "WS2_32.Lib")
 #endif
 
 #if HAVE_GETADDRINFO_A

+ 0 - 4
src/sphinxutils.cpp

@@ -36,8 +36,6 @@
 #if _WIN32
 #include <io.h> // for ::open on windows
 #include <dbghelp.h>
-#pragma comment(linker, "/defaultlib:dbghelp.lib")
-#pragma message("Automatically linking with dbghelp.lib")
 #else
 #include <sys/wait.h>
 #include <signal.h>
@@ -1658,8 +1656,6 @@ bool CSphConfigParser::Parse ()
 /////////////////////////////////////////////////////////////////////////////
 
 #if _WIN32
-#pragma message( "Automatically linking with AdvAPI32.Lib" )
-#pragma comment( lib, "AdvAPI32.Lib" )
 
 void CheckWinInstall()
 {

+ 4 - 3
src/sphinxutils.h

@@ -18,6 +18,7 @@
 
 #include <csignal>
 
+#include "config.h"
 #include "std/stringhash.h"
 #include "std/stringbuilder.h"
 
@@ -74,7 +75,7 @@ inline bool sphIsModifier ( int iSymbol )
 
 /// all wildcards
 template < typename T >
-inline bool sphIsWild ( T c )
+bool sphIsWild ( T c )
 {
 	return c=='*' || c=='?' || c=='%';
 }
@@ -449,7 +450,7 @@ void sphConfigureCommon ( const CSphConfig & hConf, FixPathAbsolute_fn && fnPath
 /// my own is chinese
 FORCE_INLINE bool sphIsChineseCode ( int iCode )
 {
-	return ( ( iCode>=0x2E80 && iCode<=0x2EF3 ) ||	// CJK radicals
+	return ( iCode>=0x2E80 && iCode<=0x2EF3 ) ||	// CJK radicals
 		( iCode>=0x2F00 && iCode<=0x2FD5 ) ||	// Kangxi radicals
 		( iCode>=0x3000 && iCode<=0x303F ) ||	// CJK Symbols and Punctuation
 		( iCode>=0x3105 && iCode<=0x312D ) ||	// Bopomofo
@@ -458,7 +459,7 @@ FORCE_INLINE bool sphIsChineseCode ( int iCode )
 		( iCode>=0x4E00 && iCode<=0x9FFF ) ||	// Ideograph
 		( iCode>=0xF900 && iCode<=0xFAD9 ) ||	// compatibility ideographs
 		( iCode>=0xFF00 && iCode<=0xFFEF ) ||	// Halfwidth and fullwidth forms
-		( iCode>=0x20000 && iCode<=0x2FA1D ) );	// CJK Ideograph Extensions B/C/D, and compatibility ideographs
+		( iCode>=0x20000 && iCode<=0x2FA1D ) ;	// CJK Ideograph Extensions B/C/D, and compatibility ideographs
 }
 
 /// detect chinese chars in a buffer