Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[windows] pass -m64 when needed
[simgrid.git] / tools / cmake / GCCFlags.cmake
index 4bc9996..76e5322 100644 (file)
@@ -167,3 +167,23 @@ if(NOT $ENV{LDFLAGS} STREQUAL "")
   message(STATUS "Add LDFLAGS: \"$ENV{LDFLAGS}\" to CMAKE_C_LINK_FLAGS")
   set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} $ENV{LDFLAGS}")
 endif()
+
+if(MINGW)
+  # http://stackoverflow.com/questions/10452262/create-64-bit-jni-under-windows
+  # We don't want to ship libgcc_s_seh-1.dll nor libstdc++-6.dll
+  set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -static-libgcc")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
+  
+  # JNI searches for stdcalls
+  set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -Wl,--add-stdcall-alias")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--add-stdcall-alias")
+  
+  # Specify the data model that we are using (yeah it helps. eg Java)
+  if(ARCH_32_BITS) 
+    set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -m32")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
+  else()
+    set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -m64")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
+  endif()  
+endif()