package An official xmake package repository https://xrepo.xmake.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.9 KiB

set_xmakever("2.5.1")
set_languages("gnu11")
add_rules("mode.debug", "mode.release")
add_requires("protobuf-cpp")
if is_plat("windows") then
add_requires("libsodium")
else
add_requires("openssl")
end
target("gns") -- we need limit path length
set_kind("$(kind)")
add_vectorexts("sse2")
add_packages("protobuf-cpp")
set_basename("gamenetworkingsockets")
if is_plat("windows") then
add_packages("libsodium")
add_syslinks("ws2_32")
add_defines("WIN32", "_WINDOWS", "STEAMNETWORKINGSOCKETS_CRYPTO_LIBSODIUM", "STEAMNETWORKINGSOCKETS_CRYPTO_25519_LIBSODIUM")
add_files( "src/common/crypto_libsodium.cpp",
"src/common/crypto_25519_libsodium.cpp")
else
add_packages("openssl")
add_syslinks("pthread")
add_defines("STEAMNETWORKINGSOCKETS_CRYPTO_25519_OPENSSL", "STEAMNETWORKINGSOCKETS_CRYPTO_VALVEOPENSSL", "OPENSSL_HAS_25519_RAW")
add_defines("POSIX", "LINUX", "GNUC", "GNU_COMPILER")
add_files( "src/common/crypto_openssl.cpp",
"src/common/crypto_25519_openssl.cpp",
"src/common/opensslwrapper.cpp")
end
if is_kind("shared") then
add_defines("STEAMNETWORKINGSOCKETS_FOREXPORT")
else
add_defines("STEAMNETWORKINGSOCKETS_STATIC_LINK")
end
add_defines("VALVE_CRYPTO_ENABLE_25519",
"GOOGLE_PROTOBUF_NO_RTTI",
"CRYPTO_DISABLE_ENCRYPT_WITH_PASSWORD",
"ENABLE_OPENSSLCONNECTION")
add_includedirs("include",
"src",
"src/common",
"src/tier0",
"src/tier1",
"src/vstdlib",
"src/steamnetworkingsockets",
"src/steamnetworkingsockets/clientlib",
"src/public")
add_headerfiles("include/(steam/*.h)")
add_headerfiles("include/(minbase/*.h)")
add_headerfiles("src/public/(*/*.h)")
add_files( "src/common/steamnetworkingsockets_messages_certs.proto",
"src/common/steamnetworkingsockets_messages.proto",
"src/common/steamnetworkingsockets_messages_udp.proto", {rules = "protobuf.cpp"})
add_files( "src/common/crypto.cpp",
"src/common/crypto_textencode.cpp",
"src/common/keypair.cpp",
"src/common/steamid.cpp",
"src/vstdlib/strtools.cpp",
"src/tier0/dbg.cpp",
"src/tier0/platformtime.cpp",
"src/tier1/bitstring.cpp",
"src/tier1/ipv6text.c",
"src/tier1/netadr.cpp",
"src/tier1/utlbuffer.cpp",
"src/tier1/utlmemory.cpp",
"src/steamnetworkingsockets/steamnetworkingsockets_certs.cpp",
"src/steamnetworkingsockets/steamnetworkingsockets_thinker.cpp",
"src/steamnetworkingsockets/steamnetworkingsockets_certstore.cpp",
"src/steamnetworkingsockets/clientlib/steamnetworkingsockets_connections.cpp",
"src/steamnetworkingsockets/clientlib/steamnetworkingsockets_flat.cpp",
"src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.cpp",
"src/steamnetworkingsockets/steamnetworkingsockets_shared.cpp",
"src/steamnetworkingsockets/steamnetworkingsockets_stats.cpp",
"src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp",
"src/steamnetworkingsockets/clientlib/steamnetworkingsockets_udp.cpp",
"src/steamnetworkingsockets/clientlib/csteamnetworkingmessages.cpp",
"src/steamnetworkingsockets/clientlib/csteamnetworkingsockets.cpp",
"src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p.cpp",
"src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp")