[mapguide-commits] r9805 - in sandbox/jng/vanilla_swig: . Bindings/src/Bindings/DotNet Bindings/src/Bindings/DotNet/Web Web/src

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Nov 27 07:12:15 PST 2020


Author: jng
Date: 2020-11-27 07:12:14 -0800 (Fri, 27 Nov 2020)
New Revision: 9805

Modified:
   sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/CMakeLists.txt
   sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt
   sandbox/jng/vanilla_swig/CMakeLists.txt
   sandbox/jng/vanilla_swig/Web/src/CMakeLists.txt
Log:
Get Web .net glue library building on the Linux side

Modified: sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/CMakeLists.txt
===================================================================
--- sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/CMakeLists.txt	2020-11-26 15:26:21 UTC (rev 9804)
+++ sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/CMakeLists.txt	2020-11-27 15:12:14 UTC (rev 9805)
@@ -1,5 +1,3 @@
-#project(MapGuideDotNetUnmanagedApi)
-
 include_directories(
     ${MG_COMMON_DIR}/MdfModel
     ${MG_COMMON_DIR}/Foundation
@@ -7,9 +5,9 @@
     ${MG_COMMON_DIR}/PlatformBase
     ${MG_COMMON_DIR}/MapGuideCommon
     ${ACE_INCLUDE_DIR}
-    ${MG_WEB_DIR}/HttpHandler
-    ${MG_WEB_DIR}/WebSupport
-    ${MG_WEB_DIR}/WebApp
+    ${MG_WEB_DIR}/src/HttpHandler
+    ${MG_WEB_DIR}/src/WebSupport
+    ${MG_WEB_DIR}/src/WebApp
     ${XERCESC_INCLUDE_DIR}
 )
 

Modified: sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt
===================================================================
--- sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt	2020-11-26 15:26:21 UTC (rev 9804)
+++ sandbox/jng/vanilla_swig/Bindings/src/Bindings/DotNet/Web/CMakeLists.txt	2020-11-27 15:12:14 UTC (rev 9805)
@@ -0,0 +1,73 @@
+project(WebUnmanagedApi)
+
+set(WebUnmanagedApi_SRCS
+    ${CMAKE_CURRENT_BINARY_DIR}/WebUnmanagedApi_wrap.cpp
+)
+
+file(COPY "../InitializeWebTier.cpp" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+file(COPY "InitializeWebTier.i" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+
+add_library(WebUnmanagedApi SHARED ${WebUnmanagedApi_SRCS})
+add_dependencies(WebUnmanagedApi IMake)
+if (UNIX)
+    add_definitions(-DDOTNETCORE)
+    # NOTE: We don't care where this source is generated because the C# source is only built on windows
+    set(MG_DOTNET_PROJECT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+    set_target_properties(WebUnmanagedApi PROPERTIES INSTALL_RPATH "$ORIGIN")
+endif (UNIX)
+if (MSVC)
+    add_definitions(-DSWIG_PUBLIC_API)
+    add_definitions(/bigobj)
+    set_target_properties(WebUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${MG_DOTNET_OUTPUT_DIR} )
+    set_target_properties(WebUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} )
+    set_target_properties(WebUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MG_DOTNET_OUTPUT_DIR} )
+endif (MSVC)
+
+set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
+if (UNIX)
+    set(IMAKE_RELATIVE_RESOLUTION "-a")
+endif (UNIX)
+
+set(SWIG_DOTNET_DEFS "")
+if (WIN32)
+    set(SWIG_DOTNET_DEFS "-DWIN32")
+endif (WIN32)
+
+message(STATUS "Using IMake at: ${IMAKE_TOOL}")
+add_custom_command(OUTPUT ${WebUnmanagedApi_SRCS}
+    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E remove -f 
+            ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/WebConstants.xml 
+            -l "C#"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+            -t
+    COMMAND ${CMAKE_COMMAND} -E copy
+            ${CMAKE_CURRENT_BINARY_DIR}/../dotnetcore_split.i
+            ${CMAKE_CURRENT_BINARY_DIR}/language.i
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/WebApiGen.xml
+            -l "C#"
+            -x "WebApi"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${CMAKE_CURRENT_BINARY_DIR}
+    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: ${MG_DOTNET_PROJECT_DIR}
+    COMMAND ${SWIG_EXECUTABLE} -c++ -csharp 
+            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
+            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
+            -namespace OSGeo.MapGuide
+            -nodefaultctor -nodefaultdtor
+            -module WebUnmanagedApi
+            -o "${CMAKE_CURRENT_BINARY_DIR}/WebUnmanagedApi_wrap.cpp"
+            -outdir "${MG_DOTNET_PROJECT_DIR}" 
+            "${CMAKE_CURRENT_BINARY_DIR}/WebApi.i"
+)
+
+target_link_libraries(WebUnmanagedApi
+    ${ACE_LIBRARY}
+    MgWebApp${MG_VERSION_SUFFIX}
+    ${XERCESC_LIBRARIES}
+)
+
+install( TARGETS WebUnmanagedApi DESTINATION ${LIB_INSTALL_DIR} COMPONENT ${MG_COMPONENT} )
\ No newline at end of file

Modified: sandbox/jng/vanilla_swig/CMakeLists.txt
===================================================================
--- sandbox/jng/vanilla_swig/CMakeLists.txt	2020-11-26 15:26:21 UTC (rev 9804)
+++ sandbox/jng/vanilla_swig/CMakeLists.txt	2020-11-27 15:12:14 UTC (rev 9805)
@@ -93,6 +93,7 @@
 set(MG_OEM_MINIZIP_INCLUDE_DIR "${MG_OEM_ROOT_DIR}/gd/zlib/contrib/minizip")
 set(MG_OEM_DWF_INCLUDE_DIR "${MG_OEM_ROOT_DIR}/DWFTK/develop/global/src")
 set(MG_COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Common")
+set(MG_WEB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Web")
 set(MG_SERVER_COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Server/src/Common")
 set(MG_SERVER_SERVICES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Server/src/Services")
 set(MG_SERVER_GWS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Server/src/Gws")

Modified: sandbox/jng/vanilla_swig/Web/src/CMakeLists.txt
===================================================================
--- sandbox/jng/vanilla_swig/Web/src/CMakeLists.txt	2020-11-26 15:26:21 UTC (rev 9804)
+++ sandbox/jng/vanilla_swig/Web/src/CMakeLists.txt	2020-11-27 15:12:14 UTC (rev 9805)
@@ -49,3 +49,7 @@
         FILES_MATCHING PATTERN *.h
     )
 endif (NOT MG_COMMON_SUBSET_ONLY)
+
+file(COPY "HttpHandler" DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN *.h)
+file(COPY "WebApp" DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN *.h)
+file(COPY "WebSupport" DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN *.h)
\ No newline at end of file



More information about the mapguide-commits mailing list