Improvements to package distribution script for Windows, preprocessor tweaks in JNI section
This commit is contained in:
@@ -56,9 +56,6 @@ set (SILENCE "-Wno-unused-parameter -Wno-unused-variable -Wno-missing-field-init
|
||||
# | PLATFORM/FEATURE AND IDE DETECTION |
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
if (JNI EQUAL 1)
|
||||
set (ADD_JNI TRUE)
|
||||
endif ()
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Android")
|
||||
set (BUILDING_ANDROID TRUE)
|
||||
endif ()
|
||||
@@ -83,11 +80,40 @@ endif ()
|
||||
if (NOT BUILDING_ANDROID AND NOT IN_XCODE AND NOT BUILD_TESTS EQUAL 0)
|
||||
set(SHOULD_BUILD_TESTS TRUE)
|
||||
endif ()
|
||||
|
||||
if (BUILDING_WIN32 OR BUILDING_WIN64 OR MSVC)
|
||||
set (BUILDING_WIN TRUE)
|
||||
endif ()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# | JNI |
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
MESSAGE (STATUS "Looking for JNI")
|
||||
# We are only interested in finding jni.h: we do not care about extended JVM
|
||||
# functionality or the AWT library.
|
||||
set(JAVA_AWT_LIBRARY NotNeeded)
|
||||
set(JAVA_JVM_LIBRARY NotNeeded)
|
||||
set(JAVA_INCLUDE_PATH2 NotNeeded)
|
||||
set(JAVA_AWT_INCLUDE_PATH NotNeeded)
|
||||
set(JAVA_INCLUDE_PATH "C:\\Program Files\\Java\\jdk-10.0.2\\include")
|
||||
find_package (JNI)
|
||||
if (JNI_FOUND)
|
||||
message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
|
||||
message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
|
||||
list (GET JNI_INCLUDE_DIRS 0 JNI_INCLUDE_DIR)
|
||||
message (STATUS "jni path=${JNI_INCLUDE_DIR}")
|
||||
include_directories ("${JNI_INCLUDE_DIR}")
|
||||
if (BUILDING_WIN)
|
||||
include_directories ("${JNI_INCLUDE_DIR}\\win32")
|
||||
endif ()
|
||||
else ()
|
||||
message (STATUS "JNI not found")
|
||||
endif ()
|
||||
|
||||
if ((BUILDING_ANDROID OR JNI) AND JNI_FOUND)
|
||||
add_definitions (-DSDK_JNI=1)
|
||||
endif ()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# | LWIP PORT |
|
||||
# -----------------------------------------------------------------------------
|
||||
@@ -104,27 +130,17 @@ endif ()
|
||||
# | LIBRARY NAMES |
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
set (STATIC_LIB_NAME ${PROJECT_NAME}-static)
|
||||
set (STATIC_LIB_OUTPUT_NAME ${PROJECT_NAME})
|
||||
set (DYNAMIC_LIB_NAME ${PROJECT_NAME}-shared)
|
||||
set (DYNAMIC_LIB_OUTPUT_NAME ${PROJECT_NAME})
|
||||
|
||||
if (BUILDING_DARWIN)
|
||||
if (IN_XCODE)
|
||||
set (XCODE_FRAMEWORK_NAME ${PROJECT_NAME})
|
||||
set (STATIC_LIB_NAME ${PROJECT_NAME}-static)
|
||||
set (STATIC_LIB_OUTPUT_NAME ${PROJECT_NAME})
|
||||
set (DYNAMIC_LIB_NAME ${PROJECT_NAME}-shared)
|
||||
set (DYNAMIC_LIB_OUTPUT_NAME ${PROJECT_NAME})
|
||||
endif ()
|
||||
|
||||
if (BUILDING_ANDROID)
|
||||
set (STATIC_LIB_NAME ${PROJECT_NAME}-static)
|
||||
set (STATIC_LIB_OUTPUT_NAME ${PROJECT_NAME})
|
||||
set (DYNAMIC_LIB_NAME ${PROJECT_NAME}-shared)
|
||||
set (DYNAMIC_LIB_OUTPUT_NAME ${PROJECT_NAME})
|
||||
endif ()
|
||||
|
||||
if (BUILDING_WIN)
|
||||
# Possibly a CMake limitation? -- Can't share target output names
|
||||
set (STATIC_LIB_NAME ${PROJECT_NAME}-static)
|
||||
set (STATIC_LIB_OUTPUT_NAME ${PROJECT_NAME}-static)
|
||||
set (DYNAMIC_LIB_NAME ${PROJECT_NAME}-shared)
|
||||
set (DYNAMIC_LIB_OUTPUT_NAME ${PROJECT_NAME}-shared)
|
||||
else ()
|
||||
set (STATIC_LIB_NAME ${PROJECT_NAME}-static)
|
||||
set (STATIC_LIB_OUTPUT_NAME ${PROJECT_NAME})
|
||||
set (DYNAMIC_LIB_NAME ${PROJECT_NAME}-shared)
|
||||
@@ -223,8 +239,10 @@ if (BUILDING_WIN)
|
||||
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})
|
||||
#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}")
|
||||
@@ -234,25 +252,6 @@ if (BUILDING_WIN)
|
||||
add_definitions (-DADD_EXPORTS=1)
|
||||
endif ()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# | JNI |
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
if (ADD_JNI OR BUILDING_ANDROID)
|
||||
MESSAGE (STATUS "Looking for JNI headers")
|
||||
find_package (JNI)
|
||||
add_definitions (-DSDK_JNI=1)
|
||||
if (JNI_FOUND)
|
||||
message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
|
||||
message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
|
||||
list (GET JNI_INCLUDE_DIRS 0 JNI_INCLUDE_DIR)
|
||||
message (STATUS "jni path=${JNI_INCLUDE_DIR}")
|
||||
include_directories ("${JNI_INCLUDE_DIR}")
|
||||
else ()
|
||||
message (STATUS "JNI not found")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# | OBJECTS-PIC (INTERMEDIATE) |
|
||||
# -----------------------------------------------------------------------------
|
||||
@@ -289,13 +288,13 @@ add_library (${STATIC_LIB_NAME} STATIC
|
||||
$<TARGET_OBJECTS:lwip_obj>
|
||||
$<TARGET_OBJECTS:zto_obj>
|
||||
$<TARGET_OBJECTS:http_obj> ${libztSrcGlob})
|
||||
set_target_properties (${STATIC_LIB_NAME} PROPERTIES OUTPUT_NAME zt)
|
||||
set_target_properties (${STATIC_LIB_NAME} PROPERTIES OUTPUT_NAME ${STATIC_LIB_OUTPUT_NAME})
|
||||
|
||||
# dynamic
|
||||
add_library (${DYNAMIC_LIB_NAME} SHARED ${libztSrcGlob})
|
||||
message (STATUS ${libztSrcGlob})
|
||||
target_link_libraries (${DYNAMIC_LIB_NAME} lwip_pic zto_pic http_pic)
|
||||
set_target_properties (${DYNAMIC_LIB_NAME} PROPERTIES OUTPUT_NAME zt)
|
||||
set_target_properties (${DYNAMIC_LIB_NAME} PROPERTIES OUTPUT_NAME ${DYNAMIC_LIB_OUTPUT_NAME})
|
||||
set_target_properties (${DYNAMIC_LIB_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS true)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
|
||||
|
||||
5
Makefile
5
Makefile
@@ -17,6 +17,9 @@ clean:
|
||||
.PHONY: dist
|
||||
dist: patch
|
||||
./packages/dist.sh
|
||||
.PHONY: dist_win
|
||||
dist_win: patch
|
||||
packages\dist.bat
|
||||
|
||||
# Initialize submodules and apply patches
|
||||
.PHONY: all
|
||||
@@ -28,6 +31,8 @@ all: update patch
|
||||
clean_win:
|
||||
-"rd /S /Q bin"
|
||||
-"rd /S /Q build"
|
||||
-"rd /S /Q WinBuild32"
|
||||
-"rd /S /Q WinBuild64"
|
||||
|
||||
# Remove any CMake-generated library-building projects
|
||||
clean_packages:
|
||||
|
||||
64
packages/dist.bat
Normal file
64
packages/dist.bat
Normal file
@@ -0,0 +1,64 @@
|
||||
REM Build all target configurations and copy results into "prebuilt"
|
||||
|
||||
set PrebuiltDebugWin32Dir=prebuilt\debug\win32
|
||||
set PrebuiltDebugWin64Dir=prebuilt\debug\win64
|
||||
set PrebuiltReleaseWin32Dir=prebuilt\release\win32
|
||||
set PrebuiltReleaseWin64Dir=prebuilt\release\win64
|
||||
|
||||
mkdir %PrebuiltDebugWin32Dir%
|
||||
mkdir %PrebuiltDebugWin64Dir%
|
||||
mkdir %PrebuiltReleaseWin32Dir%
|
||||
mkdir %PrebuiltReleaseWin64Dir%
|
||||
|
||||
set DebugWinBuildDir=bin\lib\Debug
|
||||
set ReleaseWinBuildDir=bin\lib\Release
|
||||
|
||||
mkdir WinBuild32 & pushd WinBuild32
|
||||
cmake -G "Visual Studio 15 2017" ../
|
||||
popd
|
||||
mkdir WinBuild64 & pushd WinBuild64
|
||||
cmake -G "Visual Studio 15 2017 Win64" ../
|
||||
popd
|
||||
|
||||
cmake --build WinBuild32 --config Release
|
||||
cmake --build WinBuild32 --config Debug
|
||||
|
||||
copy %DebugWinBuildDir%\zt-static.lib %PrebuiltDebugWin32Dir%\zt.lib
|
||||
copy %DebugWinBuildDir%\zt-shared.dll %PrebuiltDebugWin32Dir%\zt.dll
|
||||
copy %ReleaseWinBuildDir%\zt-static.lib %PrebuiltReleaseWin32Dir%\zt.lib
|
||||
copy %ReleaseWinBuildDir%\zt-shared.dll %PrebuiltReleaseWin32Dir%\zt.dll
|
||||
|
||||
cmake --build WinBuild64 --config Release
|
||||
cmake --build WinBuild64 --config Debug
|
||||
|
||||
copy %DebugWinBuildDir%\zt-static.lib %PrebuiltDebugWin64Dir%\zt.lib
|
||||
copy %DebugWinBuildDir%\zt-shared.dll %PrebuiltDebugWin64Dir%\zt.dll
|
||||
copy %ReleaseWinBuildDir%\zt-static.lib %PrebuiltReleaseWin64Dir%\zt.lib
|
||||
copy %ReleaseWinBuildDir%\zt-shared.dll %PrebuiltReleaseWin64Dir%\zt.dll
|
||||
|
||||
rd /S /Q bin
|
||||
|
||||
# Build with JNI
|
||||
|
||||
mkdir WinBuild32 & pushd WinBuild32
|
||||
cmake -D JNI:BOOL=ON -G "Visual Studio 15 2017" ../
|
||||
popd
|
||||
mkdir WinBuild64 & pushd WinBuild64
|
||||
cmake -D JNI:BOOL=ON -G "Visual Studio 15 2017 Win64" ../
|
||||
popd
|
||||
|
||||
cmake --build WinBuild32 --config Release
|
||||
cmake --build WinBuild32 --config Debug
|
||||
|
||||
copy %DebugWinBuildDir%\zt-static.lib %PrebuiltDebugWin32Dir%\zt-jni.lib
|
||||
copy %DebugWinBuildDir%\zt-shared.dll %PrebuiltDebugWin32Dir%\zt-jni.dll
|
||||
copy %ReleaseWinBuildDir%\zt-static.lib %PrebuiltReleaseWin32Dir%\zt-jni.lib
|
||||
copy %ReleaseWinBuildDir%\zt-shared.dll %PrebuiltReleaseWin32Dir%\zt-jni.dll
|
||||
|
||||
cmake --build WinBuild64 --config Release
|
||||
cmake --build WinBuild64 --config Debug
|
||||
|
||||
copy %DebugWinBuildDir%\zt-static.lib %PrebuiltDebugWin64Dir%\zt-jni.lib
|
||||
copy %DebugWinBuildDir%\zt-shared.dll %PrebuiltDebugWin64Dir%\zt-jni.dll
|
||||
copy %ReleaseWinBuildDir%\zt-static.lib %PrebuiltReleaseWin64Dir%\zt-jni.lib
|
||||
copy %ReleaseWinBuildDir%\zt-shared.dll %PrebuiltReleaseWin64Dir%\zt-jni.dll
|
||||
@@ -33,9 +33,13 @@
|
||||
|
||||
#ifdef SDK_JNI
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
//
|
||||
#else
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#include "libzt.h"
|
||||
#include "libztDefs.h"
|
||||
|
||||
Reference in New Issue
Block a user