diff --git a/CMakeLists.txt b/CMakeLists.txt index a2cbf61d114953e771c9770f0d78cbcc4816f9d1..ccbec4b74e12dea791839469e8d2187aff3850d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1159,21 +1159,25 @@ else(HAVE_FLTK) endif(HAVE_FLTK) target_link_libraries(gmsh ${LINK_LIBRARIES}) -# increase stack to 16Mb on Windows to avoid overflows in recursive -# tet classification for large 3D Delaunay grids + force static -# linking of system libraries with cygwin/mingw (to ease distribution -# andspeed up app startup time) +# Windows specific linker options if(WIN32 AND NOT MSVC OR CYGWIN) + set_target_properties(gmsh PROPERTIES LINK_FLAGS "-Wl,--stack,16777216 -mwindows") if(HAVE_64BIT_SIZE_T) set_target_properties(gmsh PROPERTIES LINK_FLAGS - "-Wl,--stack,16777216 ${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win64Icon.res -mwindows -static") + "${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win64Icon.res") else(HAVE_64BIT_SIZE_T) set_target_properties(gmsh PROPERTIES LINK_FLAGS - "-Wl,--stack,16777216 ${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win32Icon.res -mwindows -static") + "${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win32Icon.res") endif(HAVE_64BIT_SIZE_T) - # remove stupid -Wl,-Bdynamic flags - set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS) - set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS) + if(ENABLE_BUILD_DYNAMIC) + set_target_properties(shared PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols") + set_target_properties(gmsh PROPERTIES LINK_FLAGS "-Wl,--enable-auto-import") + else(ENABLE_BUILD_DYNAMIC) + set_target_properties(gmsh PROPERTIES LINK_FLAGS "-static") + # remove -Wl,-Bdynamic flags + set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS) + set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS) + endif(ENABLE_BUILD_DYNAMIC) elseif(MSVC) set_target_properties(gmsh PROPERTIES LINK_FLAGS "/STACK:16777216") endif(WIN32 AND NOT MSVC OR CYGWIN) diff --git a/utils/nightly/gmsh_win64_nightly.bat b/utils/nightly/gmsh_win64_nightly.bat index e343924e6511c2d2fed2ea5e6784a77196e95d60..1d74d859a8d3bddc1ae84520e85d047742f21cb9 100755 --- a/utils/nightly/gmsh_win64_nightly.bat +++ b/utils/nightly/gmsh_win64_nightly.bat @@ -5,4 +5,4 @@ chdir C:\cygwin\bin bash --login -c "cd ${HOME}/src/gmsh/utils/nightly && ctest -S gmsh_win64_nightly.ctest -VV > ${HOME}/src/gmsh/nightly.log 2>&1" -REM bash --login -c "cd ${HOME}/src/gmsh/utils/nightly && ctest -S gmsh_win64_dynamic_nightly.ctest -VV > ${HOME}/src/gmsh/nightly_dynamic.log 2>&1" +bash --login -c "cd ${HOME}/src/gmsh/utils/nightly && ctest -S gmsh_win64_dynamic_nightly.ctest -VV > ${HOME}/src/gmsh/nightly_dynamic.log 2>&1"