Skip to content

Commit

Permalink
improve on the distinction between MSVC and WIN32 for mingw support #…
Browse files Browse the repository at this point in the history
  • Loading branch information
behrisch committed Jul 1, 2022
1 parent 2cbc2a3 commit 91a22ab
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 39 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ set(commonlibs
utils_distribution utils_handlers utils_shapes utils_options
utils_xml utils_geom utils_common utils_importio utils_iodevices utils_traction_wire foreign_tcpip
${XercesC_LIBRARIES} ${ZLIB_LIBRARIES} ${PROJ_LIBRARY})
if (MSVC)
if (WIN32)
set(commonlibs ${commonlibs} ws2_32)
endif ()
if (PPROF)
Expand Down
12 changes: 3 additions & 9 deletions src/config.h.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -154,18 +154,12 @@
/* Define for dynamic Fox linkage */
#define FOXDLL 1

/* Define default constructor for FOX moduls (MinGW32) */
#define FOX_CONSTRUCTOR(classname) classname() {}

/* Linux and OS */
#else

/* Define default constructor for FOX moduls (Linux and OS) */
#define FOX_CONSTRUCTOR(classname) classname() {}

/* MinGW32 */
#endif

/* Define default constructor for FOX moduls */
#define FOX_CONSTRUCTOR(classname) classname() {}

/* Visual Studio */
#endif

Expand Down
22 changes: 9 additions & 13 deletions src/libsumo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,10 @@ install(TARGETS libsumocpp EXPORT SUMOConfig
)
export(TARGETS libsumocpp NAMESPACE SUMO:: FILE "${CMAKE_BINARY_DIR}/SUMOConfig.cmake")

if (CLANG_COMPILER AND WIN32)
if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE)
target_link_libraries(libsumocpp PRIVATE -Wl,--whole-archive ${sumolibs} -Wl,--no-whole-archive)
elseif (MSVC OR APPLE)
target_link_libraries(libsumocpp PRIVATE ${sumolibs})
else ()
target_link_libraries(libsumocpp PRIVATE -Wl,--whole-archive ${sumolibs} -Wl,--no-whole-archive)
target_link_libraries(libsumocpp PRIVATE ${sumolibs})
endif()
target_link_libraries(libsumocpp PRIVATE ${sumo_link_libraries})

Expand All @@ -125,14 +123,11 @@ if(SWIG_FOUND)
else()
SWIG_ADD_MODULE(libsumojni java libsumo.i)
endif()
if (CLANG_COMPILER AND WIN32)
if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE)
set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-Wno-strict-aliasing")
swig_link_libraries(libsumojni -Wl,--whole-archive ${libsumo_link_library} ${sumolibs} -Wl,--no-whole-archive)
elseif (MSVC OR APPLE)
swig_link_libraries(libsumojni ${libsumo_link_library} ${sumolibs})
else()
set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-Wno-strict-aliasing")
swig_link_libraries(libsumojni -Wl,--whole-archive ${libsumo_link_library} ${sumolibs} -Wl,--no-whole-archive)
swig_link_libraries(libsumojni ${libsumo_link_library} ${sumolibs})
endif()
swig_link_libraries(libsumojni ${sumo_link_libraries})
if (MVN_EXECUTABLE)
Expand Down Expand Up @@ -193,13 +188,14 @@ if(SWIG_FOUND)
else()
SWIG_ADD_MODULE(libsumo python libsumo.i)
endif()
if (CLANG_COMPILER AND WIN32)
if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE)
swig_link_libraries(libsumo -Wl,--whole-archive ${libsumo_link_library} ${sumolibs} -Wl,--no-whole-archive)
elseif (MSVC OR APPLE)
else()
set_property(TARGET ${SWIG_MODULE_libsumo_REAL_NAME} PROPERTY FOLDER "libsumo")
swig_link_libraries(libsumo ${libsumo_link_library} ${sumolibs} ${PYTHON_LIBRARIES})
else()
swig_link_libraries(libsumo -Wl,--whole-archive ${libsumo_link_library} ${sumolibs} -Wl,--no-whole-archive)
endif()
if (WIN32)
swig_link_libraries(libsumo ${PYTHON_LIBRARIES})
endif()
swig_link_libraries(libsumo ${sumo_link_libraries})
if (NOT ${SETUPTOOLS_MISSING})
Expand Down
11 changes: 11 additions & 0 deletions src/libsumo/libsumo_typemap.i
Original file line number Diff line number Diff line change
Expand Up @@ -441,4 +441,15 @@ static PyObject* parseSubscriptionMap(const std::map<int, std::shared_ptr<libsum
}
}

#if SWIG_VERSION < 0x040100 && defined(SWIGJAVA)
// see https://github.com/supranational/blst/issues/53
/* SWIG versions prior 4.1 were crossing the MinGW's ways on the path
* to JNI 'jlong' type */
%begin %{
#if defined(__MINGW32__) && defined(__int64)
# undef __int64
#endif
%}
#endif // SWIGJAVA

// %feature("compactdefaultargs") libsumo::Simulation::findRoute;
23 changes: 12 additions & 11 deletions src/libtraci/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ add_library(libtracistatic STATIC ${libtracistatic_STAT_SRCS})
add_dependencies(libtracistatic generate-version-h install_dll)
set_property(TARGET libtracistatic PROPERTY FOLDER "libtraci")

if (MSVC)
if (WIN32)
set(libtcpip foreign_tcpip ws2_32)
else()
set(libtcpip foreign_tcpip)
Expand All @@ -62,12 +62,10 @@ install(TARGETS libtracicpp EXPORT SUMOConfig
)
export(TARGETS libtracicpp NAMESPACE SUMO:: APPEND FILE "${CMAKE_BINARY_DIR}/SUMOConfig.cmake")

if (CLANG_COMPILER AND WIN32)
if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE)
target_link_libraries(libtracicpp PRIVATE -Wl,--whole-archive ${libtcpip} -Wl,--no-whole-archive)
elseif (MSVC OR APPLE)
target_link_libraries(libtracicpp PRIVATE ${libtcpip})
else ()
target_link_libraries(libtracicpp PRIVATE -Wl,--whole-archive ${libtcpip} -Wl,--no-whole-archive)
target_link_libraries(libtracicpp PRIVATE ${libtcpip})
endif()

if(SWIG_FOUND)
Expand All @@ -88,11 +86,11 @@ if(SWIG_FOUND)
else()
SWIG_ADD_MODULE(libtracijni java libtraci.i)
endif()
if (MSVC OR APPLE)
swig_link_libraries(libtracijni libtracistatic ${libtcpip})
else()
if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE)
set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-Wno-strict-aliasing")
swig_link_libraries(libtracijni -Wl,--whole-archive libtracistatic ${libtcpip} -Wl,--no-whole-archive)
else()
swig_link_libraries(libtracijni libtracistatic ${libtcpip})
endif()
if (MVN_EXECUTABLE)
ADD_CUSTOM_COMMAND(TARGET libtracijni POST_BUILD
Expand Down Expand Up @@ -152,11 +150,14 @@ if(SWIG_FOUND)
else()
SWIG_ADD_MODULE(libtraci python libtraci.i)
endif()
if (MSVC OR APPLE)
if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE)
swig_link_libraries(libtraci -Wl,--whole-archive libtracistatic ${libtcpip} -Wl,--no-whole-archive)
else()
set_property(TARGET ${SWIG_MODULE_libtraci_REAL_NAME} PROPERTY FOLDER "libtraci")
swig_link_libraries(libtraci libtracistatic ${libtcpip} ${PYTHON_LIBRARIES})
else()
swig_link_libraries(libtraci -Wl,--whole-archive libtracistatic ${libtcpip} -Wl,--no-whole-archive)
endif()
if (WIN32)
swig_link_libraries(libtraci ${PYTHON_LIBRARIES})
endif()
if (NOT ${SETUPTOOLS_MISSING})
install(
Expand Down
8 changes: 4 additions & 4 deletions src/microsim/MSVehicle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4278,12 +4278,12 @@ MSVehicle::executeMove() {
myState.myBackPos = getLength() - myState.myPos;
myAngle = computeAngle();
} else {
#ifdef WIN32
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable: 4127) // do not warn about constant conditional expression
#endif
SOFT_ASSERT(false);
#ifdef WIN32
#ifdef _MSC_VER
#pragma warning(pop)
#endif
}
Expand Down Expand Up @@ -4618,12 +4618,12 @@ MSVehicle::getBackPositionOnLane(const MSLane* lane, bool calledByGetPosition) c
}
WRITE_WARNING("Request backPos of vehicle '" + getID() + "' for invalid lane '" + Named::getIDSecure(lane)
+ "' time=" + time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".")
#ifdef WIN32
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable: 4127) // do not warn about constant conditional expression
#endif
SOFT_ASSERT(false);
#ifdef WIN32
#ifdef _MSC_VER
#pragma warning(pop)
#endif
return myState.myBackPos;
Expand Down
2 changes: 1 addition & 1 deletion src/traci_testclient/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ add_executable(TraCITestClient ${TraCITestClient_SRCS})
set_target_properties(TraCITestClient PROPERTIES OUTPUT_NAME TraCITestClient${BINARY_SUFFIX})
set_target_properties(TraCITestClient PROPERTIES OUTPUT_NAME_DEBUG TraCITestClient${BINARY_SUFFIX}D)
target_link_libraries(TraCITestClient utils_traci foreign_tcpip)
if (MSVC)
if (WIN32)
target_link_libraries(TraCITestClient ws2_32)
endif ()

Expand Down

0 comments on commit 91a22ab

Please sign in to comment.