Skip to content
Snippets Groups Projects
Commit 891045f9 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

prepare dynamic builds

parent d869626d
No related branches found
No related tags found
No related merge requests found
Showing
with 123 additions and 23 deletions
......@@ -30,6 +30,7 @@ option(ENABLE_BLAS_LAPACK "Use BLAS and Lapack for linear algebra" ON)
option(ENABLE_BLOSSOM "Enable Blossom algo (based on MATCH and concorde97)" ${DEFAULT})
option(ENABLE_BUILD_LIB "Build static Gmsh library" OFF)
option(ENABLE_BUILD_SHARED "Build shared Gmsh library" OFF)
option(ENABLE_BUILD_DYNAMIC "Build dynamically linked Gmsh binary" OFF)
option(ENABLE_BUILD_ANDROID "Build Gmsh library for Android NDK" OFF)
option(ENABLE_BUILD_IOS "Build Gmsh library for iOS" OFF)
option(ENABLE_CGNS "Enable CGNS mesh export" OFF)
......@@ -461,7 +462,6 @@ if(ENABLE_BUILD_ANDROID)
target_link_libraries(androidGmsh ${LINK_LIBRARIES})
endif(ENABLE_BUILD_ANDROID)
if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
if(NOT HAVE_MESH OR NOT HAVE_POST OR NOT HAVE_PLUGINS OR NOT HAVE_ONELAB)
message(SEND_ERROR "Cannot compile GUI without Mesh, Post, Plugin or OneLab")
......@@ -1101,12 +1101,13 @@ if(ENABLE_BUILD_LIB)
endif(ENABLE_BUILD_LIB)
# shared library target
if(ENABLE_BUILD_SHARED OR ENABLE_WRAP_PYTHON OR ENABLE_WRAP_JAVA)
if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC OR
ENABLE_WRAP_PYTHON OR ENABLE_WRAP_JAVA)
add_library(shared SHARED ${GMSH_SRC})
set_target_properties(shared PROPERTIES OUTPUT_NAME Gmsh)
set_target_properties(shared PROPERTIES
VERSION ${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION}.${GMSH_PATCH_VERSION}
SOVERSION ${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION})
VERSION ${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION}.${GMSH_PATCH_VERSION}
SOVERSION ${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION})
if(HAVE_LAPACK AND LAPACK_FLAGS)
set_target_properties(shared PROPERTIES LINK_FLAGS ${LAPACK_FLAGS})
endif(HAVE_LAPACK AND LAPACK_FLAGS)
......@@ -1115,20 +1116,27 @@ if(ENABLE_BUILD_SHARED OR ENABLE_WRAP_PYTHON OR ENABLE_WRAP_JAVA)
"won't link. In MSVC change /MT to /MD in the shared project properties")
endif(MSVC AND ENABLE_MSVC_STATIC_RUNTIME)
target_link_libraries(shared ${LINK_LIBRARIES})
endif(ENABLE_BUILD_SHARED OR ENABLE_WRAP_PYTHON OR ENABLE_WRAP_JAVA)
endif(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC OR
ENABLE_WRAP_PYTHON OR ENABLE_WRAP_JAVA)
# binary targets
if(HAVE_FLTK)
add_executable(gmsh WIN32 Fltk/Main.cpp ${GMSH_SRC})
add_executable(gmsh_dynamic EXCLUDE_FROM_ALL Fltk/Main.cpp)
target_link_libraries(gmsh_dynamic shared)
if(ENABLE_BUILD_DYNAMIC)
add_executable(gmsh WIN32 Fltk/Main.cpp)
target_link_libraries(gmsh shared)
else(ENABLE_BUILD_DYNAMIC)
add_executable(gmsh WIN32 Fltk/Main.cpp ${GMSH_SRC})
endif(ENABLE_BUILD_DYNAMIC)
elseif(HAVE_QT)
qt4_wrap_cpp(GMSH_MOC_SRC ${GMSH_MOC_HDR})
add_executable(gmsh WIN32 Qt/Main.cpp ${GMSH_SRC} ${GMSH_MOC_SRC})
else(HAVE_FLTK)
add_executable(gmsh Common/Main.cpp ${GMSH_SRC})
add_executable(gmsh_dynamic EXCLUDE_FROM_ALL Common/Main.cpp)
target_link_libraries(gmsh_dynamic shared)
if(ENABLE_BUILD_DYNAMIC)
add_executable(gmsh Common/Main.cpp)
target_link_libraries(gmsh shared)
else(ENABLE_BUILD_DYNAMIC)
add_executable(gmsh Common/Main.cpp ${GMSH_SRC})
endif(ENABLE_BUILD_DYNAMIC)
endif(HAVE_FLTK)
target_link_libraries(gmsh ${LINK_LIBRARIES})
......@@ -1175,6 +1183,7 @@ endif(UNIX)
set(WELCOME_FILE ${CMAKE_CURRENT_SOURCE_DIR}/doc/WELCOME.txt)
set(LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/doc/LICENSE.txt)
set(CREDITS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/doc/CREDITS.txt)
set(ONELAB_PY ${CMAKE_CURRENT_SOURCE_DIR}/contrib/onelab/python/onelab.py)
file(GLOB TUTORIAL_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tutorial/?*.*)
file(GLOB DEMO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/demos/?*.*)
set(TEX_DIR ${CMAKE_CURRENT_SOURCE_DIR}/doc/texinfo)
......@@ -1237,13 +1246,14 @@ install(TARGETS gmsh DESTINATION ${GMSH_BIN} OPTIONAL)
if(ENABLE_BUILD_LIB)
install(TARGETS lib DESTINATION lib OPTIONAL)
endif(ENABLE_BUILD_LIB)
if(ENABLE_BUILD_SHARED)
if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
install(TARGETS shared DESTINATION lib OPTIONAL)
endif(ENABLE_BUILD_SHARED)
endif(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
if(ENABLE_BUILD_ANDROID)
install(TARGETS androidGmsh DESTINATION lib OPTIONAL)
endif(ENABLE_BUILD_ANDROID)
install(FILES ${ONELAB_PY} DESTINATION ${GMSH_BIN})
install(FILES ${GMSH_API} DESTINATION include/gmsh)
install(FILES ${WELCOME_FILE} DESTINATION ${GMSH_DOC} RENAME README.txt)
install(FILES ${LICENSE_FILE} DESTINATION ${GMSH_DOC})
......
......@@ -21,6 +21,7 @@ unzip -q -o /tmp/gmsh-svn-Windows64.zip -d /tmp
unzip -q -o /tmp/getdp-svn-Windows64c.zip -d /tmp
cp /tmp/README.txt gmsh-getdp-Windows64
mv /tmp/gmsh-*-svn-Windows/gmsh.exe gmsh-getdp-Windows64
mv /tmp/gmsh-*-svn-Windows/onelab.py gmsh-getdp-Windows64
mv /tmp/getdp-*-svn-Windows/getdp.exe gmsh-getdp-Windows64
mv /tmp/gmsh-*-svn-Windows/LICENSE.txt gmsh-getdp-Windows64/LICENSE_Gmsh.txt
mv /tmp/getdp-*-svn-Windows/LICENSE.txt gmsh-getdp-Windows64/LICENSE_GetDP.txt
......@@ -41,6 +42,7 @@ unzip -q -o /tmp/gmsh-svn-Windows.zip -d /tmp
unzip -q -o /tmp/getdp-svn-Windows32c.zip -d /tmp
cp /tmp/README.txt gmsh-getdp-Windows32
mv /tmp/gmsh-*-svn-Windows/gmsh.exe gmsh-getdp-Windows32
mv /tmp/gmsh-*-svn-Windows/onelab.py gmsh-getdp-Windows32
mv /tmp/getdp-*-svn-Windows/getdp.exe gmsh-getdp-Windows32
mv /tmp/gmsh-*-svn-Windows/LICENSE.txt gmsh-getdp-Windows32/LICENSE_Gmsh.txt
mv /tmp/getdp-*-svn-Windows/LICENSE.txt gmsh-getdp-Windows32/LICENSE_GetDP.txt
......@@ -61,6 +63,7 @@ tar zxvf /tmp/gmsh-svn-Linux.tgz -C /tmp
tar zxvf /tmp/getdp-svn-Linux32c.tgz -C /tmp
cp /tmp/README.txt gmsh-getdp-Linux32
mv /tmp/gmsh-*-svn-Linux/bin/gmsh gmsh-getdp-Linux32
mv /tmp/gmsh-*-svn-Linux/bin/onelab.py gmsh-getdp-Linux32
mv /tmp/getdp-*-svn-Linux/bin/getdp gmsh-getdp-Linux32
mv /tmp/gmsh-*-svn-Linux/share/doc/gmsh/LICENSE.txt gmsh-getdp-Linux32/LICENSE_Gmsh.txt
mv /tmp/getdp-*-svn-Linux/share/doc/getdp/LICENSE.txt gmsh-getdp-Linux32/LICENSE_GetDP.txt
......@@ -81,6 +84,7 @@ tar zxvf /tmp/gmsh-svn-Linux64.tgz -C /tmp
tar zxvf /tmp/getdp-svn-Linux64c.tgz -C /tmp
cp /tmp/README.txt gmsh-getdp-Linux64
mv /tmp/gmsh-*-svn-Linux/bin/gmsh gmsh-getdp-Linux64
mv /tmp/gmsh-*-svn-Linux/bin/onelab.py gmsh-getdp-Linux64
mv /tmp/getdp-*-svn-Linux/bin/getdp gmsh-getdp-Linux64
mv /tmp/gmsh-*-svn-Linux/share/doc/gmsh/LICENSE.txt gmsh-getdp-Linux64/LICENSE_Gmsh.txt
mv /tmp/getdp-*-svn-Linux/share/doc/getdp/LICENSE.txt gmsh-getdp-Linux64/LICENSE_GetDP.txt
......
......@@ -28,6 +28,9 @@ set(CTEST_UPDATE_COMMAND "${CTEST_SVN_COMMAND}")
set(CTEST_CONFIGURE_COMMAND
"${CTEST_CMAKE_COMMAND} -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION}")
set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} ${CTEST_BUILD_OPTIONS}")
if(BUILD_DYNAMIC)
set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} -DENABLE_BUILD_DYNAMIC=1")
endif(BUILD_DYNAMIC)
set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"-G${CTEST_CMAKE_GENERATOR}\"")
set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"${CTEST_SOURCE_DIRECTORY}\"")
......@@ -54,12 +57,12 @@ set(ENV{GMSH_BUILD_ERRORS} ${ERR})
if(WITH_TEST)
ctest_test()
endif(WITH_TEST)
if (WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
if(WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
ctest_coverage()
endif (WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
if (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
endif(WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
if(WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
ctest_memcheck()
endif (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
endif(WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
ctest_submit()
macro(upload_package WEB ARCH EXTRA EXT1 EXT2)
......
......@@ -12,7 +12,11 @@ set(WITH_COVERAGE FALSE) # check code coverage?
set(WITH_MEMCHECK FALSE) # check memory with valgrind?
#################################################################################
set(CTEST_BUILD_NAME "Linux64")
if(BUILD_DYNAMIC)
set(CTEST_BUILD_NAME "Linux64-dynamic")
else(BUILD_DYNAMIC)
set(CTEST_BUILD_NAME "Linux64")
endif(BUILD_DYNAMIC)
set(OPT "-DGMSH_EXTRA_VERSION=${EXTRA_VERSION}")
set(OPT "${OPT} -DCMAKE_PREFIX_PATH:path=/usr/local/opencascade;/usr/local")
set(OPT "${OPT} -DENABLE_NATIVE_FILE_CHOOSER:bool=FALSE")
......@@ -21,4 +25,8 @@ set(OPT "${OPT} -DPETSC_DIR=$ENV{HOME}/src/petsc-3.1-p8")
set(OPT "${OPT} -DSLEPC_DIR=$ENV{HOME}/src/slepc-3.1-p4")
set(CTEST_BUILD_OPTIONS ${OPT})
include(gmsh.ctest)
upload_package(${WEB_BIN} Linux 64 .tar.gz .tgz)
if(BUILD_DYNAMIC)
upload_package(${WEB_BIN} Linux 64-dynamic .tar.gz .tgz)
else(BUILD_DYNAMIC)
upload_package(${WEB_BIN} Linux 64 .tar.gz .tgz)
end(BUILD_DYNAMIC)
# Gmsh - Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
#
# See the LICENSE.txt file for license information. Please report all
# bugs and problems to the public mailing list <gmsh@geuz.org>.
set(CTEST_NIGHTLY_START_TIME "22:00:00 UTC")
set(CDASH_MODEL "Nightly")
set(EXTRA_VERSION "-dynamic-svn")
set(BUILD_DYNAMIC true)
include(gmsh_linux64.ctest)
# Gmsh - Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
#
# See the LICENSE.txt file for license information. Please report all
# bugs and problems to the public mailing list <gmsh@geuz.org>.
set(CTEST_NIGHTLY_START_TIME "22:00:00 UTC")
set(CDASH_MODEL "Nightly")
set(EXTRA_VERSION "-svn")
include(gmsh_linux64.ctest)
......@@ -12,7 +12,11 @@ set(WITH_COVERAGE FALSE) # check code coverage?
set(WITH_MEMCHECK FALSE) # check memory with valgrind?
#################################################################################
set(CTEST_BUILD_NAME "MacOSX64")
if(BUILD_DYNAMIC)
set(CTEST_BUILD_NAME "MacOSX64-dynamic")
else(BUILD_DYNAMIC)
set(CTEST_BUILD_NAME "MacOSX64")
endif(BUILD_DYNAMIC)
set(OPT "-DGMSH_EXTRA_VERSION=${EXTRA_VERSION}")
set(OPT "${OPT} -DCMAKE_PREFIX_PATH:path=/usr/local/opencascade;/usr/local")
set(OPT "${OPT} -DCMAKE_CXX_FLAGS=-mmacosx-version-min=10.5")
......@@ -21,4 +25,8 @@ set(OPT "${OPT} -DPETSC_DIR=$ENV{HOME}/src/petsc-3.1-p8")
set(OPT "${OPT} -DSLEPC_DIR=$ENV{HOME}/src/slepc-3.1-p6")
set(CTEST_BUILD_OPTIONS ${OPT})
include(gmsh.ctest)
upload_package(${WEB_BIN} MacOSX "" .dmg .dmg)
if(BUILD_DYNAMIC)
upload_package(${WEB_BIN} MacOSX -dynamic .dmg .dmg)
else(BUILD_DYNAMIC)
upload_package(${WEB_BIN} MacOSX "" .dmg .dmg)
endif(BUILD_DYNAMIC)
# Gmsh - Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
#
# See the LICENSE.txt file for license information. Please report all
# bugs and problems to the public mailing list <gmsh@geuz.org>.
set(CTEST_NIGHTLY_START_TIME "22:00:00 UTC")
set(CDASH_MODEL "Nightly")
set(EXTRA_VERSION "-dynamic-svn")
set(BUILD_DYNAMIC true)
include(gmsh_mac.ctest)
# Gmsh - Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
#
# See the LICENSE.txt file for license information. Please report all
# bugs and problems to the public mailing list <gmsh@geuz.org>.
set(CTEST_NIGHTLY_START_TIME "22:00:00 UTC")
set(CDASH_MODEL "Nightly")
set(EXTRA_VERSION "-svn")
include(gmsh_mac.ctest)
......@@ -5,3 +5,4 @@
# * launchctl load ~/Library/LaunchAgents/org.geuz.gmsh.nightly.plist
cd ${HOME}/src/gmsh/utils/nightly && /usr/local/bin/ctest -S gmsh_mac_nightly.ctest -VV > ${HOME}/src/gmsh/nightly.log 2>&1
cd ${HOME}/src/gmsh/utils/nightly && /usr/local/bin/ctest -S gmsh_mac_dynamic_nightly.ctest -VV > ${HOME}/src/gmsh/nightly_dynamic.log 2>&1
......@@ -12,7 +12,11 @@ set(WITH_COVERAGE FALSE) # check code coverage?
set(WITH_MEMCHECK FALSE) # check memory with valgrind?
#################################################################################
set(CTEST_BUILD_NAME "Win64")
if(BUILD_DYNAMIC)
set(CTEST_BUILD_NAME "Win64-dynamic")
else(BUILD_DYNAMIC)
set(CTEST_BUILD_NAME "Win64")
endif(BUILD_DYNAMIC)
set(OPT "-DGMSH_EXTRA_VERSION=${EXTRA_VERSION}")
set(OPT "${OPT} -DCMAKE_PREFIX_PATH:path=/usr/local/opencascade;/usr/local;/usr/x86_64-w64-mingw32/sys-root/mingw")
set(OPT "${OPT} -DCMAKE_C_COMPILER=/usr/bin/x86_64-w64-mingw32-gcc.exe")
......@@ -23,4 +27,8 @@ set(OPT "${OPT} -DPETSC_DIR=$ENV{HOME}/src/petsc-3.1-p8")
set(OPT "${OPT} -DSLEPC_DIR=$ENV{HOME}/src/slepc-3.1-p6")
set(CTEST_BUILD_OPTIONS ${OPT})
include(gmsh.ctest)
upload_package(${WEB_BIN} Windows 64 .zip .zip)
if(BUILD_DYNAMIC)
upload_package(${WEB_BIN} Windows 64-dynamic .zip .zip)
else(BUILD_DYNAMIC)
upload_package(${WEB_BIN} Windows 64 .zip .zip)
endif(BUILD_DYNAMIC)
# Gmsh - Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
#
# See the LICENSE.txt file for license information. Please report all
# bugs and problems to the public mailing list <gmsh@geuz.org>.
set(CTEST_NIGHTLY_START_TIME "22:00:00 UTC")
set(CDASH_MODEL "Nightly")
set(EXTRA_VERSION "-dynamic-svn")
set(BUILD_DYNAMIC true)
include(gmsh_win64.ctest)
# Gmsh - Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
#
# See the LICENSE.txt file for license information. Please report all
# bugs and problems to the public mailing list <gmsh@geuz.org>.
set(CTEST_NIGHTLY_START_TIME "22:00:00 UTC")
set(CDASH_MODEL "Nightly")
set(EXTRA_VERSION "-svn")
include(gmsh_win64.ctest)
......@@ -4,3 +4,4 @@ C:
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"
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"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment