Updated CMakeLists.txt for Windows build
This commit is contained in:
@@ -171,6 +171,29 @@ if (BUILDING_LINUX AND NOT BUILDING_ANDROID)
|
|||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lpthread")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lpthread")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# WINDOWS-specific MSVC flags and libraries
|
||||||
|
if (BUILDING_WIN)
|
||||||
|
# 32-bit
|
||||||
|
if(NOT BUILDING_WIN64)
|
||||||
|
set (WINLIBDIR, "C:/Program Files (x86)/Windows Kits/10/Lib/10.0.16299.0/um/x86")
|
||||||
|
endif ()
|
||||||
|
# 64-bit
|
||||||
|
if(BUILDING_WIN64)
|
||||||
|
set (WINLIBDIR, "C:/Program Files (x86)/Windows Kits/10/Lib/10.0.16299.0/um/x64")
|
||||||
|
endif ()
|
||||||
|
#find_library (ws2_32_LIBRARY_PATH NAMES WS2_32 HINTS ${WINLIBDIR})
|
||||||
|
#find_library (shlwapi_LIBRARY_PATH NAMES ShLwApi HINTS ${WINLIBDIR})
|
||||||
|
set (ws2_32_LIBRARY_PATH "${WINLIBDIR}/WS2_32.Lib")
|
||||||
|
set (shlwapi_LIBRARY_PATH "${WINLIBDIR}/ShLwApi.Lib")
|
||||||
|
set (iphlpapi_LIBRARY_PATH "${WINLIBDIR}/iphlpapi.Lib")
|
||||||
|
message (STATUS ${WINLIBDIR})
|
||||||
|
message (STATUS "WS2_32=${ws2_32_LIBRARY_PATH}")
|
||||||
|
message (STATUS "ShLwApi=${shlwapi_LIBRARY_PATH}")
|
||||||
|
message (STATUS "liphlpapi=${iphlpapi_LIBRARY_PATH}")
|
||||||
|
add_definitions (-DZT_SDK=1)
|
||||||
|
add_definitions (-DADD_EXPORTS=1)
|
||||||
|
endif ()
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# | JNI |
|
# | JNI |
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
@@ -235,6 +258,7 @@ file (GLOB ztcoreSrcGlob
|
|||||||
|
|
||||||
file (GLOB libnatpmpSrcGlob
|
file (GLOB libnatpmpSrcGlob
|
||||||
${ZTO_SRC_DIR}/ext/libnatpmp/natpmp.c
|
${ZTO_SRC_DIR}/ext/libnatpmp/natpmp.c
|
||||||
|
${ZTO_SRC_DIR}/ext/libnatpmp/wingettimeofday.c
|
||||||
${ZTO_SRC_DIR}/ext/libnatpmp/getgateway.c)
|
${ZTO_SRC_DIR}/ext/libnatpmp/getgateway.c)
|
||||||
|
|
||||||
file (GLOB libminiupnpcSrcGlob
|
file (GLOB libminiupnpcSrcGlob
|
||||||
@@ -408,22 +432,22 @@ set_target_properties (ztcore PROPERTIES
|
|||||||
LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
||||||
|
|
||||||
# libnatpmp.a
|
# libnatpmp.a
|
||||||
add_library (natpmp STATIC $<TARGET_OBJECTS:libnatpmp_obj>)
|
#add_library (natpmp STATIC $<TARGET_OBJECTS:libnatpmp_obj>)
|
||||||
set_target_properties (natpmp PROPERTIES
|
#set_target_properties (natpmp PROPERTIES
|
||||||
OUTPUT_NAME natpmp
|
# OUTPUT_NAME natpmp
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
# LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
||||||
|
|
||||||
# libminiupnpc.a
|
# libminiupnpc.a
|
||||||
add_library (miniupnpc STATIC $<TARGET_OBJECTS:miniupnpc_obj>)
|
#add_library (miniupnpc STATIC $<TARGET_OBJECTS:miniupnpc_obj>)
|
||||||
set_target_properties (miniupnpc PROPERTIES
|
#set_target_properties (miniupnpc PROPERTIES
|
||||||
OUTPUT_NAME miniupnpc
|
# OUTPUT_NAME miniupnpc
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
# LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
||||||
|
|
||||||
# liblwip.a
|
# liblwip.a
|
||||||
add_library (lwip STATIC $<TARGET_OBJECTS:lwip_obj>)
|
#add_library (lwip STATIC $<TARGET_OBJECTS:lwip_obj>)
|
||||||
set_target_properties (lwip PROPERTIES
|
#set_target_properties (lwip PROPERTIES
|
||||||
OUTPUT_NAME lwip
|
# OUTPUT_NAME lwip
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
# LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
||||||
|
|
||||||
# libzt.a
|
# libzt.a
|
||||||
add_library (${STATIC_LIB_NAME} STATIC $<TARGET_OBJECTS:libzt_obj>
|
add_library (${STATIC_LIB_NAME} STATIC $<TARGET_OBJECTS:libzt_obj>
|
||||||
@@ -435,6 +459,13 @@ set_target_properties (${STATIC_LIB_NAME} PROPERTIES
|
|||||||
OUTPUT_NAME zt
|
OUTPUT_NAME zt
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
LIBRARY_OUTPUT_DIRECTORY ${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
|
||||||
set_target_properties (${STATIC_LIB_NAME} PROPERTIES COMPILE_FLAGS "${ZT_FLAGS}")
|
set_target_properties (${STATIC_LIB_NAME} PROPERTIES COMPILE_FLAGS "${ZT_FLAGS}")
|
||||||
|
if (BUILDING_WIN)
|
||||||
|
target_link_libraries (
|
||||||
|
${STATIC_LIB_NAME}
|
||||||
|
${ws2_32_LIBRARY_PATH}
|
||||||
|
${shlwapi_LIBRARY_PATH}
|
||||||
|
${iphlpapi_LIBRARY_PATH})
|
||||||
|
endif ()
|
||||||
|
|
||||||
# libzt.so/dylib/dll
|
# libzt.so/dylib/dll
|
||||||
add_library (${DYNAMIC_LIB_NAME} SHARED ${libztSrcGlob})
|
add_library (${DYNAMIC_LIB_NAME} SHARED ${libztSrcGlob})
|
||||||
@@ -442,6 +473,12 @@ target_link_libraries (${DYNAMIC_LIB_NAME} zt_pic lwip_pic zto_pic natpmp_pic mi
|
|||||||
set_target_properties (${DYNAMIC_LIB_NAME} PROPERTIES COMPILE_FLAGS "${ZT_FLAGS}")
|
set_target_properties (${DYNAMIC_LIB_NAME} PROPERTIES COMPILE_FLAGS "${ZT_FLAGS}")
|
||||||
set_target_properties (${DYNAMIC_LIB_NAME} PROPERTIES OUTPUT_NAME ${DYNAMIC_LIB_OUTPUT_NAME}
|
set_target_properties (${DYNAMIC_LIB_NAME} PROPERTIES OUTPUT_NAME ${DYNAMIC_LIB_OUTPUT_NAME}
|
||||||
WINDOWS_EXPORT_ALL_SYMBOLS true)
|
WINDOWS_EXPORT_ALL_SYMBOLS true)
|
||||||
|
target_link_libraries (
|
||||||
|
${DYNAMIC_LIB_NAME}
|
||||||
|
${ws2_32_LIBRARY_PATH}
|
||||||
|
${shlwapi_LIBRARY_PATH}
|
||||||
|
${iphlpapi_LIBRARY_PATH} zt_pic lwip_pic zto_pic natpmp_pic miniupnpc_pic)
|
||||||
|
|
||||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||||
|
|
||||||
if (BUILDING_ANDROID)
|
if (BUILDING_ANDROID)
|
||||||
@@ -517,4 +554,5 @@ install (TARGETS ${STATIC_LIB_NAME}
|
|||||||
)
|
)
|
||||||
install (TARGETS ${DYNAMIC_LIB_NAME}
|
install (TARGETS ${DYNAMIC_LIB_NAME}
|
||||||
LIBRARY DESTINATION lib
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user