mirror of https://github.com/CGAL/cgal
Merge pull request #5451 from sloriot/CGAL-no_setup_exe
Remove setup # Conflicts: # .travis.yml # .travis/packages.txt # wininst/developer_scripts/script_cgal.nsi
This commit is contained in:
commit
2282df03bd
79
.travis.yml
79
.travis.yml
|
|
@ -1,79 +0,0 @@
|
|||
language: cpp
|
||||
dist: bionic
|
||||
sudo: required
|
||||
git:
|
||||
depth: 3
|
||||
env:
|
||||
matrix:
|
||||
- PACKAGE='CHECK'
|
||||
- PACKAGE='AABB_tree Advancing_front_surface_reconstruction Algebraic_foundations '
|
||||
- PACKAGE='Algebraic_kernel_d Algebraic_kernel_for_circles Algebraic_kernel_for_spheres '
|
||||
- PACKAGE='Alpha_shapes_2 Alpha_shapes_3 Apollonius_graph_2 '
|
||||
- PACKAGE='Arithmetic_kernel Arrangement_on_surface_2 BGL '
|
||||
- PACKAGE='Barycentric_coordinates_2 Boolean_set_operations_2 Bounding_volumes '
|
||||
- PACKAGE='Box_intersection_d CGAL_Core CGAL_ImageIO '
|
||||
- PACKAGE='CGAL_ipelets Cartesian_kernel Circular_kernel_2 '
|
||||
- PACKAGE='Circular_kernel_3 Circulator Classification '
|
||||
- PACKAGE='Combinatorial_map Cone_spanners_2 Convex_decomposition_3 '
|
||||
- PACKAGE='Convex_hull_2 Convex_hull_3 Convex_hull_d '
|
||||
- PACKAGE='Distance_2 Distance_3 Envelope_2 '
|
||||
- PACKAGE='Envelope_3 Filtered_kernel Generalized_map '
|
||||
- PACKAGE='Generator Geomview GraphicsView '
|
||||
- PACKAGE='HalfedgeDS Hash_map Heat_method_3 '
|
||||
- PACKAGE='Homogeneous_kernel Hyperbolic_triangulation_2 Inscribed_areas '
|
||||
- PACKAGE='Installation Interpolation Intersections_2 '
|
||||
- PACKAGE='Intersections_3 Interval_skip_list Interval_support '
|
||||
- PACKAGE='Jet_fitting_3 Kernel_23 Kernel_d '
|
||||
- PACKAGE='LEDA Linear_cell_complex MacOSX '
|
||||
- PACKAGE='Maintenance Matrix_search Mesh_2 '
|
||||
- PACKAGE='Mesh_3 Mesher_level Minkowski_sum_2 '
|
||||
- PACKAGE='Minkowski_sum_3 Modifier Modular_arithmetic '
|
||||
- PACKAGE='Nef_2 Nef_3 Nef_S2 '
|
||||
- PACKAGE='NewKernel_d Number_types OpenNL '
|
||||
- PACKAGE='Optimal_bounding_box Optimal_transportation_reconstruction_2 Optimisation_basic '
|
||||
- PACKAGE='Partition_2 Periodic_2_triangulation_2 Periodic_3_mesh_3 '
|
||||
- PACKAGE='Periodic_3_triangulation_3 Periodic_4_hyperbolic_triangulation_2 Point_set_2 '
|
||||
- PACKAGE='Point_set_3 Point_set_processing_3 Poisson_surface_reconstruction_3 '
|
||||
- PACKAGE='Polygon Polygon_mesh_processing Polygonal_surface_reconstruction '
|
||||
- PACKAGE='Polyhedron Polyline_simplification_2 Polynomial '
|
||||
- PACKAGE='Polytope_distance_d Principal_component_analysis Principal_component_analysis_LGPL '
|
||||
- PACKAGE='Profiling_tools Property_map QP_solver '
|
||||
- PACKAGE='Random_numbers Ridges_3 STL_Extension '
|
||||
- PACKAGE='Scale_space_reconstruction_3 Scripts SearchStructures '
|
||||
- PACKAGE='Segment_Delaunay_graph_2 Segment_Delaunay_graph_Linf_2 Set_movable_separability_2 '
|
||||
- PACKAGE='Shape_detection Skin_surface_3 Snap_rounding_2 '
|
||||
- PACKAGE='Solver_interface Spatial_searching Spatial_sorting '
|
||||
- PACKAGE='Straight_skeleton_2 Stream_lines_2 Stream_support '
|
||||
- PACKAGE='Subdivision_method_3 Surface_mesh Surface_mesh_approximation '
|
||||
- PACKAGE='Surface_mesh_deformation Surface_mesh_parameterization Surface_mesh_segmentation '
|
||||
- PACKAGE='Surface_mesh_shortest_path Surface_mesh_simplification Surface_mesh_skeletonization '
|
||||
- PACKAGE='Surface_mesh_topology Surface_mesher Surface_sweep_2 '
|
||||
- PACKAGE='TDS_2 TDS_3 Testsuite '
|
||||
- PACKAGE='Tetrahedral_remeshing Three Triangulation '
|
||||
- PACKAGE='Triangulation_2 Triangulation_3 Union_find '
|
||||
- PACKAGE='Visibility_2 Voronoi_diagram_2 wininst '
|
||||
compiler: clang
|
||||
install:
|
||||
- echo "$PWD"
|
||||
- if [ -n "$TRAVIS_PULL_REQUEST_BRANCH" ] && [ "$PACKAGE" != CHECK ]; then DO_IGNORE=FALSE; for ARG in $(echo "$PACKAGE");do if [ "$ARG" = "Maintenance" ]; then continue; fi; . $PWD/.travis/test_package.sh "$PWD" "$ARG"; echo "DO_IGNORE is $DO_IGNORE"; if [ "$DO_IGNORE" = "FALSE" ]; then break; fi; done; if [ "$DO_IGNORE" = "TRUE" ]; then travis_terminate 0; fi;fi
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' bash .travis/install.sh
|
||||
- export CXX=clang++-10 CC=clang-10;
|
||||
before_script:
|
||||
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
||||
- sudo mv doxygen_exe /usr/bin/doxygen
|
||||
- sudo chmod +x /usr/bin/doxygen
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' cmake -DCMAKE_CXX_FLAGS="-std=c++1y" -DCGAL_HEADER_ONLY=ON -DCMAKE_CXX_FLAGS_RELEASE=-DCGAL_NDEBUG -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON ..
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' make
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' sudo make install &>/dev/null
|
||||
- cd ..
|
||||
script:
|
||||
- cd ./.travis
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' bash ./build_package.sh $PACKAGE
|
||||
notifications:
|
||||
email:
|
||||
on_success: change
|
||||
# default: always
|
||||
on_failure: always
|
||||
# default: always
|
||||
|
|
@ -1,144 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
[ -n "$CGAL_DEBUG_TRAVIS" ] && set -x
|
||||
|
||||
CXX_FLAGS="-DCGAL_NDEBUG -ftemplate-backtrace-limit=0"
|
||||
|
||||
function mytime {
|
||||
/usr/bin/time -f "Spend time of %C: %E (real)" "$@"
|
||||
}
|
||||
old_IFS=$IFS
|
||||
IFS=$' '
|
||||
ROOT="$PWD/.."
|
||||
for ARG in $(echo "$@")
|
||||
do
|
||||
#skip package maintenance
|
||||
if [ "$ARG" = "Maintenance" ]; then
|
||||
continue
|
||||
fi
|
||||
cd $ROOT
|
||||
|
||||
#install openmesh only if necessary
|
||||
if [ "$ARG" = "CHECK" ] || [ "$ARG" = BGL ] || [ "$ARG" = Convex_hull_3 ] ||\
|
||||
[ "$ARG" = Polygon_mesh_processing ] || [ "$ARG" = Property_map ] ||\
|
||||
[ "$ARG" = Surface_mesh_deformation ] || [ "$ARG" = Surface_mesh_shortest_path ] ||\
|
||||
[ "$ARG" = Surface_mesh_simplification ]; then
|
||||
mytime sudo bash .travis/install_openmesh.sh
|
||||
fi
|
||||
|
||||
|
||||
if [ "$ARG" = "CHECK" ]
|
||||
then
|
||||
cd .travis
|
||||
mytime ./generate_travis.sh --check
|
||||
cd ..
|
||||
IFS=$old_IFS
|
||||
mytime zsh $ROOT/Scripts/developer_scripts/test_merge_of_branch HEAD
|
||||
#test dependencies
|
||||
cd $ROOT
|
||||
mytime bash Scripts/developer_scripts/cgal_check_dependencies.sh --check_headers /usr/bin/doxygen
|
||||
|
||||
cd .travis
|
||||
#parse current matrix and check that no package has been forgotten
|
||||
|
||||
IFS=$'\n'
|
||||
COPY=0
|
||||
MATRIX=()
|
||||
for LINE in $(cat "$PWD/packages.txt")
|
||||
do
|
||||
MATRIX+="$LINE "
|
||||
done
|
||||
|
||||
PACKAGES=()
|
||||
cd ..
|
||||
for f in *
|
||||
do
|
||||
if [ -d "$f/package_info/$f" ]
|
||||
then
|
||||
PACKAGES+="$f "
|
||||
fi
|
||||
done
|
||||
|
||||
DIFFERENCE=$(echo ${MATRIX[@]} ${PACKAGES[@]} | tr ' ' '\n' | sort | uniq -u)
|
||||
IFS=$' '
|
||||
if [ "${DIFFERENCE[0]}" != "" ]
|
||||
then
|
||||
echo "The matrix and the actual package list differ : ."
|
||||
echo ${DIFFERENCE[*]}
|
||||
echo "You should run generate_travis.sh."
|
||||
exit 1
|
||||
fi
|
||||
echo "Matrix is up to date."
|
||||
#check if non standard cgal installation works
|
||||
cd $ROOT
|
||||
mkdir build_test
|
||||
cd build_test
|
||||
mytime cmake -DCMAKE_INSTALL_PREFIX=install/ -DCGAL_BUILD_THREE_DOC=TRUE ..
|
||||
mytime make install
|
||||
# test install with minimal downstream example
|
||||
mkdir installtest
|
||||
cd installtest
|
||||
touch main.cpp
|
||||
mkdir build
|
||||
echo 'project(Example)' >> CMakeLists.txt
|
||||
echo 'set(PROJECT_SRCS ${PROJECT_SOURCE_DIR}/main.cpp)' >> CMakeLists.txt
|
||||
echo 'find_package(CGAL REQUIRED)' >> CMakeLists.txt
|
||||
echo 'add_executable(${PROJECT_NAME} ${PROJECT_SRCS})' >> CMakeLists.txt
|
||||
echo 'target_link_libraries(${PROJECT_NAME} CGAL::CGAL)' >> CMakeLists.txt
|
||||
echo '#include "CGAL/remove_outliers.h"' >> main.cpp
|
||||
cd build
|
||||
mytime cmake -DCMAKE_INSTALL_PREFIX=../../install -DCGAL_BUILD_THREE_DOC=TRUE ..
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$ARG" = "Installation" ]
|
||||
then
|
||||
mkdir build_dir
|
||||
cd build_dir
|
||||
cmake -DWITH_tests=ON -DBUILD_TESTING=ON ..
|
||||
ctest -j2 -L CGAL_cmake_testsuite --output-on-failure
|
||||
cd ..
|
||||
rm -rf ./build_dir
|
||||
#==-- configure all CGAL with -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON, and then launch CTest on a few labels. --==
|
||||
mkdir config_dir
|
||||
cd config_dir
|
||||
cmake -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON -DBUILD_TESTING=ON ..
|
||||
ctest -j2 -L AABB_tree --output-on-failure
|
||||
cd ..
|
||||
rm -rf ./config_dir
|
||||
exit 0
|
||||
fi
|
||||
|
||||
IFS=$old_IFS
|
||||
|
||||
if [ -n "$TRAVIS_PULL_REQUEST_BRANCH" ]; then
|
||||
DO_IGNORE=FALSE
|
||||
. $ROOT/.travis/test_package.sh "$ROOT" "$ARG"
|
||||
echo "DO_IGNORE is $DO_IGNORE"
|
||||
if [ "$DO_IGNORE" = "TRUE" ]; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
IFS=$' '
|
||||
mkdir -p build-travis
|
||||
cd build-travis
|
||||
WITHDEMOS=ON
|
||||
if [ "$ARG" = "Polyhedron" ]; then
|
||||
WITHDEMOS=OFF
|
||||
fi
|
||||
EXTRA_CXX_FLAGS=
|
||||
case "$CC" in
|
||||
clang*)
|
||||
EXTRA_CXX_FLAGS="-Werror=inconsistent-missing-override"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
mytime cmake -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${EXTRA_CXX_FLAGS}" -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS:BOOL=ON -DBUILD_TESTING=ON -DWITH_tests=ON -DWITH_examples=ON -DWITH_demos=$WITHDEMOS ..
|
||||
mytime ctest -j2 -L $ARG'([_][A-Z]|$)' -E execution___of__ --output-on-failure
|
||||
done
|
||||
IFS=$old_IFS
|
||||
# Local Variables:
|
||||
# tab-width: 2
|
||||
# sh-basic-offset: 2
|
||||
# End:
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
CHECK=
|
||||
case $1 in
|
||||
--check) CHECK=y;;
|
||||
esac
|
||||
|
||||
set -e
|
||||
cd ../
|
||||
|
||||
if [ -f "$PWD/.travis/packages.txt" ]
|
||||
then
|
||||
rm "$PWD/.travis/packages.txt"
|
||||
fi
|
||||
|
||||
#find all the packages
|
||||
PACKAGES=()
|
||||
INDEX=0
|
||||
i=0
|
||||
for f in *
|
||||
do
|
||||
if [ -d "$f/package_info/$f" ]
|
||||
then
|
||||
echo "$f" >> ./tmp.txt
|
||||
fi
|
||||
done
|
||||
LC_ALL=C sort ./tmp.txt > ./.travis/packages.txt
|
||||
rm ./tmp.txt
|
||||
while read p; do
|
||||
PACKAGES[$INDEX]+="$p "
|
||||
i=$[i+1]
|
||||
if [ $i = 3 ]
|
||||
then
|
||||
i=0
|
||||
INDEX=$[INDEX+1]
|
||||
fi
|
||||
done <./.travis/packages.txt
|
||||
if [ -f ".travis.yml" ]
|
||||
then
|
||||
#copy the current .travis.yml for later check
|
||||
mv ./.travis.yml ./.travis.old
|
||||
fi
|
||||
#writes the first part of the file
|
||||
old_IFS=$IFS
|
||||
IFS=$'\n'
|
||||
for LINE in $(cat "$PWD/.travis/template.txt")
|
||||
do
|
||||
if [ "$LINE" != " matrix:" ]
|
||||
then
|
||||
echo "$LINE" >> .travis.yml
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo " matrix:" >> .travis.yml
|
||||
#writes the matrix
|
||||
echo " - PACKAGE='CHECK'" >> .travis.yml
|
||||
for package in ${PACKAGES[@]}
|
||||
do
|
||||
echo " - PACKAGE='$package'" >> .travis.yml
|
||||
done
|
||||
|
||||
#writes the end of the file
|
||||
COPY=0
|
||||
for LINE in $(cat "$PWD/.travis/template.txt")
|
||||
do
|
||||
if [ "$LINE" = "compiler: clang" ]
|
||||
then
|
||||
COPY=1
|
||||
fi
|
||||
if [ $COPY = 1 ]
|
||||
then
|
||||
echo "$LINE" >> .travis.yml
|
||||
fi
|
||||
done
|
||||
IFS=$' '
|
||||
#check if there are differences between the files
|
||||
if ! cmp -s ./.travis.yml ./.travis.old;
|
||||
then
|
||||
echo ".travis.yml has changed : "
|
||||
diff ./.travis.yml ./.travis.old
|
||||
if [ -n "$CHECK" ]; then
|
||||
echo "You should modify the file .travis/template.txt"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
#erase old travis
|
||||
rm ./.travis.old
|
||||
IFS=$old_IFS
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 2
|
||||
# sh-basic-offset: 2
|
||||
# End:
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
[ -n "$CGAL_DEBUG_TRAVIS" ] && set -x
|
||||
DONE=0
|
||||
sudo add-apt-repository ppa:mikhailnov/pulseeffects -y
|
||||
sudo apt-get update
|
||||
|
||||
while [ $DONE = 0 ]
|
||||
do
|
||||
DONE=1 && sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-10 zsh \
|
||||
flex bison cmake graphviz libgmp-dev libmpfr-dev libmpfi-dev zlib1g-dev libeigen3-dev \
|
||||
qtbase5-dev libqt5sql5-sqlite libqt5opengl5-dev qtscript5-dev libqt5svg5-dev qttools5-dev qttools5-dev-tools qml-module-qtgraphicaleffects libopencv-dev mesa-common-dev libmetis-dev libglu1-mesa-dev \
|
||||
libboost1.72-dev || DONE=0 && sudo apt-get update
|
||||
done
|
||||
exit 0
|
||||
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
mkdir -p openmesh
|
||||
cd openmesh
|
||||
wget -O openmesh.tar.gz https://www.openmesh.org/media/Releases/6.3/OpenMesh-6.3.tar.gz
|
||||
tar xf openmesh.tar.gz --strip-components=1
|
||||
sed -i '94i #include <sys/time.h>' src/OpenMesh/Tools/Utils/conio.cc
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_APPS=FALSE ..
|
||||
make -j2
|
||||
sudo make -j2 install &>/dev/null
|
||||
|
||||
#clean up
|
||||
cd ../..
|
||||
rm -rf ./openmesh
|
||||
|
|
@ -1,138 +0,0 @@
|
|||
AABB_tree
|
||||
Advancing_front_surface_reconstruction
|
||||
Algebraic_foundations
|
||||
Algebraic_kernel_d
|
||||
Algebraic_kernel_for_circles
|
||||
Algebraic_kernel_for_spheres
|
||||
Alpha_shapes_2
|
||||
Alpha_shapes_3
|
||||
Apollonius_graph_2
|
||||
Arithmetic_kernel
|
||||
Arrangement_on_surface_2
|
||||
BGL
|
||||
Barycentric_coordinates_2
|
||||
Boolean_set_operations_2
|
||||
Bounding_volumes
|
||||
Box_intersection_d
|
||||
CGAL_Core
|
||||
CGAL_ImageIO
|
||||
CGAL_ipelets
|
||||
Cartesian_kernel
|
||||
Circular_kernel_2
|
||||
Circular_kernel_3
|
||||
Circulator
|
||||
Classification
|
||||
Combinatorial_map
|
||||
Cone_spanners_2
|
||||
Convex_decomposition_3
|
||||
Convex_hull_2
|
||||
Convex_hull_3
|
||||
Convex_hull_d
|
||||
Distance_2
|
||||
Distance_3
|
||||
Envelope_2
|
||||
Envelope_3
|
||||
Filtered_kernel
|
||||
Generalized_map
|
||||
Generator
|
||||
Geomview
|
||||
GraphicsView
|
||||
HalfedgeDS
|
||||
Hash_map
|
||||
Heat_method_3
|
||||
Homogeneous_kernel
|
||||
Hyperbolic_triangulation_2
|
||||
Inscribed_areas
|
||||
Installation
|
||||
Interpolation
|
||||
Intersections_2
|
||||
Intersections_3
|
||||
Interval_skip_list
|
||||
Interval_support
|
||||
Jet_fitting_3
|
||||
Kernel_23
|
||||
Kernel_d
|
||||
LEDA
|
||||
Linear_cell_complex
|
||||
MacOSX
|
||||
Maintenance
|
||||
Matrix_search
|
||||
Mesh_2
|
||||
Mesh_3
|
||||
Mesher_level
|
||||
Minkowski_sum_2
|
||||
Minkowski_sum_3
|
||||
Modifier
|
||||
Modular_arithmetic
|
||||
Nef_2
|
||||
Nef_3
|
||||
Nef_S2
|
||||
NewKernel_d
|
||||
Number_types
|
||||
OpenNL
|
||||
Optimal_bounding_box
|
||||
Optimal_transportation_reconstruction_2
|
||||
Optimisation_basic
|
||||
Partition_2
|
||||
Periodic_2_triangulation_2
|
||||
Periodic_3_mesh_3
|
||||
Periodic_3_triangulation_3
|
||||
Periodic_4_hyperbolic_triangulation_2
|
||||
Point_set_2
|
||||
Point_set_3
|
||||
Point_set_processing_3
|
||||
Poisson_surface_reconstruction_3
|
||||
Polygon
|
||||
Polygon_mesh_processing
|
||||
Polygonal_surface_reconstruction
|
||||
Polyhedron
|
||||
Polyline_simplification_2
|
||||
Polynomial
|
||||
Polytope_distance_d
|
||||
Principal_component_analysis
|
||||
Principal_component_analysis_LGPL
|
||||
Profiling_tools
|
||||
Property_map
|
||||
QP_solver
|
||||
Random_numbers
|
||||
Ridges_3
|
||||
STL_Extension
|
||||
Scale_space_reconstruction_3
|
||||
Scripts
|
||||
SearchStructures
|
||||
Segment_Delaunay_graph_2
|
||||
Segment_Delaunay_graph_Linf_2
|
||||
Set_movable_separability_2
|
||||
Shape_detection
|
||||
Skin_surface_3
|
||||
Snap_rounding_2
|
||||
Solver_interface
|
||||
Spatial_searching
|
||||
Spatial_sorting
|
||||
Straight_skeleton_2
|
||||
Stream_lines_2
|
||||
Stream_support
|
||||
Subdivision_method_3
|
||||
Surface_mesh
|
||||
Surface_mesh_approximation
|
||||
Surface_mesh_deformation
|
||||
Surface_mesh_parameterization
|
||||
Surface_mesh_segmentation
|
||||
Surface_mesh_shortest_path
|
||||
Surface_mesh_simplification
|
||||
Surface_mesh_skeletonization
|
||||
Surface_mesh_topology
|
||||
Surface_mesher
|
||||
Surface_sweep_2
|
||||
TDS_2
|
||||
TDS_3
|
||||
Testsuite
|
||||
Tetrahedral_remeshing
|
||||
Three
|
||||
Triangulation
|
||||
Triangulation_2
|
||||
Triangulation_3
|
||||
Union_find
|
||||
Visibility_2
|
||||
Voronoi_diagram_2
|
||||
wininst
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
language: cpp
|
||||
dist: bionic
|
||||
sudo: required
|
||||
git:
|
||||
depth: 3
|
||||
env:
|
||||
matrix:
|
||||
PACKAGES_MATRIX
|
||||
|
||||
compiler: clang
|
||||
install:
|
||||
- echo "$PWD"
|
||||
- if [ -n "$TRAVIS_PULL_REQUEST_BRANCH" ] && [ "$PACKAGE" != CHECK ]; then DO_IGNORE=FALSE; for ARG in $(echo "$PACKAGE");do if [ "$ARG" = "Maintenance" ]; then continue; fi; . $PWD/.travis/test_package.sh "$PWD" "$ARG"; echo "DO_IGNORE is $DO_IGNORE"; if [ "$DO_IGNORE" = "FALSE" ]; then break; fi; done; if [ "$DO_IGNORE" = "TRUE" ]; then travis_terminate 0; fi;fi
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' bash .travis/install.sh
|
||||
- export CXX=clang++-10 CC=clang-10;
|
||||
before_script:
|
||||
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
||||
- sudo mv doxygen_exe /usr/bin/doxygen
|
||||
- sudo chmod +x /usr/bin/doxygen
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' cmake -DCMAKE_CXX_FLAGS="-std=c++1y" -DCGAL_HEADER_ONLY=ON -DCMAKE_CXX_FLAGS_RELEASE=-DCGAL_NDEBUG -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON ..
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' make
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' sudo make install &>/dev/null
|
||||
- cd ..
|
||||
script:
|
||||
- cd ./.travis
|
||||
- /usr/bin/time -f 'Spend time of %C -- %E (real)' bash ./build_package.sh $PACKAGE
|
||||
notifications:
|
||||
email:
|
||||
on_success: change
|
||||
# default: always
|
||||
on_failure: always
|
||||
# default: always
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
#Will cd $1 and test package named $2
|
||||
#to find out if it or one of its dependencies has changed in the current branch
|
||||
|
||||
DO_IGNORE=FALSE
|
||||
cd $1
|
||||
|
||||
if [ ! -d "$2" ]; then
|
||||
echo "$2 : MISSING PACKAGE. Ignoring."
|
||||
DO_IGNORE=TRUE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ ! -f "$2/package_info/$2/dependencies" ];then
|
||||
echo "No dependencies found for $2"
|
||||
bash Scripts/developer_scripts/cgal_check_dependencies.sh --check_headers /usr/bin/doxygen
|
||||
exit 1
|
||||
fi
|
||||
LIST_OF_FILES=$(git diff --name-only origin/master... |cut -d/ -f1 |uniq |sort)
|
||||
LIST_OF_DEPS=$(cat "$2/package_info/$2/dependencies")
|
||||
echo "$LIST_OF_DEPS"
|
||||
for flie in $LIST_OF_DEPS
|
||||
do
|
||||
[[ $LIST_OF_FILES =~ (^|[[:space:]])$flie($|[[:space:]]) ]] && return
|
||||
done
|
||||
echo "Package ignored because none of its dependencies has been modified."
|
||||
DO_IGNORE=TRUE
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
|
||||
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
||||
|
||||
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
|
||||
#define min(a,b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
|
||||
#define FAR #error named reserved in windows.h
|
||||
#define far #error named reserved in windows.h
|
||||
|
||||
#define Polyline #error named reserved in windows.h
|
||||
#define Polygon #error named reserved in windows.h
|
||||
|
|
@ -16,9 +16,9 @@ installation instructions.
|
|||
|
||||
If you choose to use `vcpkg`, you might have to bootstrap and download
|
||||
and compile it, but from then on `vcpkg` will make your life easier.
|
||||
On the other hand, if you need to specify a specific version, or have already installed
|
||||
On the other hand, if you need to use a specific version, or have already installed
|
||||
a certain version of a dependency and do not wish to potentially have multiple versions installed,
|
||||
you will want to use the \cgal Installer.
|
||||
you will want to use the \cgal source archive.
|
||||
|
||||
We explain the two approaches in the next two sections.
|
||||
|
||||
|
|
@ -150,11 +150,19 @@ you are advised to look at the `CMakeLists.txt` files in the example
|
|||
folder of the package(s) that you are using to learn how to specify \cgal and additional third party
|
||||
dependencies.
|
||||
|
||||
\section install-with-installer Installing with the CGAL Installer
|
||||
\section install-from-source Installing from the Source Archive
|
||||
|
||||
You can download and extract `CGAL-\cgalReleaseNumber``.zip` from https://www.cgal.org/download/windows.html.
|
||||
|
||||
\subsection ssect-installer-gmp-mpfr Installing GMP and MPFR
|
||||
|
||||
Precompiled version of \gmp and \mpfr are provided in the asset <i>GMP and MPFR libraries, for Windows 64bits</i>
|
||||
from https://github.com/CGAL/cgal/releases.
|
||||
If you only install those libraries to use \cgal, then you should extract this archive inside the directory
|
||||
`CGAL-\cgalReleaseNumber` created when extracting the \cgal zip source archive.
|
||||
That way those dependencies will be automatically detected by cmake
|
||||
(you should then get the directory `CGAL-\cgalReleaseNumber``\``auxiliary``\``gmp`).
|
||||
|
||||
You can download and run `CGAL-\cgalReleaseNumber``-Setup.exe` from https://www.cgal.org/download/windows.html.
|
||||
It is a self-extracting executable that downloads the \cgal header files, and optionally the source code of the
|
||||
examples and demos. Additionally, it can download precompiled versions of \gmp and \mpfr.
|
||||
|
||||
\subsection ssect-installer-boost Installing Boost
|
||||
|
||||
|
|
@ -271,9 +279,4 @@ you are advised to look at the `CMakeLists.txt` files in the example
|
|||
folder of the package(s) that you are using to learn how to specify \cgal and additional third party
|
||||
dependencies.
|
||||
|
||||
\section install-with-tarball Installing from the Source Archive
|
||||
|
||||
Instead of the installer you can also download release tarballs. The sole difference
|
||||
is that the installer also downloads precompiled \gmp and \mpfr libraries.
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -124,4 +124,3 @@ R = RU Groningen
|
|||
Width_3 E
|
||||
iostream ETIMU
|
||||
kdtree T
|
||||
wininst ETIMU
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 291 KiB |
|
|
@ -1,47 +0,0 @@
|
|||
#
|
||||
# From: http://nsis.sourceforge.net/Dump_log_to_file
|
||||
#
|
||||
|
||||
!define LVM_GETITEMCOUNT 0x1004
|
||||
!define LVM_GETITEMTEXT 0x102D
|
||||
|
||||
Function DumpLog
|
||||
Exch $5
|
||||
Push $0
|
||||
Push $1
|
||||
Push $2
|
||||
Push $3
|
||||
Push $4
|
||||
Push $6
|
||||
|
||||
FindWindow $0 "#32770" "" $HWNDPARENT
|
||||
GetDlgItem $0 $0 1016
|
||||
StrCmp $0 0 exit
|
||||
FileOpen $5 $5 "w"
|
||||
StrCmp $5 "" exit
|
||||
SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
|
||||
System::Alloc ${NSIS_MAX_STRLEN}
|
||||
Pop $3
|
||||
StrCpy $2 0
|
||||
System::Call "*(i, i, i, i, i, i, i, i, i) i \
|
||||
(0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
|
||||
loop: StrCmp $2 $6 done
|
||||
System::Call "User32::SendMessageA(i, i, i, i) i \
|
||||
($0, ${LVM_GETITEMTEXT}, $2, r1)"
|
||||
System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
|
||||
FileWrite $5 "$4$\r$\n"
|
||||
IntOp $2 $2 + 1
|
||||
Goto loop
|
||||
done:
|
||||
FileClose $5
|
||||
System::Free $1
|
||||
System::Free $3
|
||||
exit:
|
||||
Pop $6
|
||||
Pop $4
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $1
|
||||
Pop $0
|
||||
Exch $5
|
||||
FunctionEnd
|
||||
|
|
@ -1,360 +0,0 @@
|
|||
/**
|
||||
* EnvVarUpdate.nsh
|
||||
* : Environmental Variables: append, prepend, and remove entries
|
||||
*
|
||||
* WARNING: If you use StrFunc.nsh header then include it before this file
|
||||
* with all required definitions. This is to avoid conflicts
|
||||
*
|
||||
* Usage:
|
||||
* ${EnvVarUpdate} "ResultVar" "EnvVarName" "Action" "RegLoc" "PathString"
|
||||
*
|
||||
* Credits:
|
||||
* Version 1.0
|
||||
* * Cal Turney (turnec2)
|
||||
* * Amir Szekely (KiCHiK) and e-circ for developing the forerunners of this
|
||||
* function: AddToPath, un.RemoveFromPath, AddToEnvVar, un.RemoveFromEnvVar,
|
||||
* WriteEnvStr, and un.DeleteEnvStr
|
||||
* * Diego Pedroso (deguix) for StrTok
|
||||
* * Kevin English (kenglish_hi) for StrContains
|
||||
* * Hendri Adriaens (Smile2Me), Diego Pedroso (deguix), and Dan Fuhry
|
||||
* (dandaman32) for StrReplace
|
||||
*
|
||||
* Version 1.1 (compatibility with StrFunc.nsh)
|
||||
* * techtonik
|
||||
*
|
||||
* http://nsis.sourceforge.net/Environmental_Variables:_append%2C_prepend%2C_and_remove_entries
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
!ifndef ENVVARUPDATE_FUNCTION
|
||||
!define ENVVARUPDATE_FUNCTION
|
||||
!verbose push
|
||||
!verbose 3
|
||||
!include "LogicLib.nsh"
|
||||
!include "WinMessages.NSH"
|
||||
!include "StrFunc.nsh"
|
||||
|
||||
; ---- Fix for conflict if StrFunc.nsh is already includes in main file -----------------------
|
||||
!macro _IncludeStrFunction StrFuncName
|
||||
!ifndef ${StrFuncName}_INCLUDED
|
||||
${${StrFuncName}}
|
||||
!endif
|
||||
!ifndef Un${StrFuncName}_INCLUDED
|
||||
${Un${StrFuncName}}
|
||||
!endif
|
||||
!define un.${StrFuncName} "${Un${StrFuncName}}"
|
||||
!macroend
|
||||
|
||||
!insertmacro _IncludeStrFunction StrTok
|
||||
!insertmacro _IncludeStrFunction StrStr
|
||||
!insertmacro _IncludeStrFunction StrRep
|
||||
|
||||
; ---------------------------------- Macro Definitions ----------------------------------------
|
||||
!macro _EnvVarUpdateConstructor ResultVar EnvVarName Action Regloc PathString
|
||||
Push "${EnvVarName}"
|
||||
Push "${Action}"
|
||||
Push "${RegLoc}"
|
||||
Push "${PathString}"
|
||||
Call EnvVarUpdate
|
||||
Pop "${ResultVar}"
|
||||
!macroend
|
||||
!define EnvVarUpdate '!insertmacro "_EnvVarUpdateConstructor"'
|
||||
|
||||
!macro _unEnvVarUpdateConstructor ResultVar EnvVarName Action Regloc PathString
|
||||
Push "${EnvVarName}"
|
||||
Push "${Action}"
|
||||
Push "${RegLoc}"
|
||||
Push "${PathString}"
|
||||
Call un.EnvVarUpdate
|
||||
Pop "${ResultVar}"
|
||||
!macroend
|
||||
!define un.EnvVarUpdate '!insertmacro "_unEnvVarUpdateConstructor"'
|
||||
; ---------------------------------- Macro Definitions end-------------------------------------
|
||||
|
||||
;----------------------------------- EnvVarUpdate start----------------------------------------
|
||||
!define hklm_all_users 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
|
||||
!define hkcu_current_user 'HKCU "Environment"'
|
||||
|
||||
!macro EnvVarUpdate UN
|
||||
|
||||
Function ${UN}EnvVarUpdate
|
||||
|
||||
Push $0
|
||||
Exch 4
|
||||
Exch $1
|
||||
Exch 3
|
||||
Exch $2
|
||||
Exch 2
|
||||
Exch $3
|
||||
Exch
|
||||
Exch $4
|
||||
Push $5
|
||||
Push $6
|
||||
Push $7
|
||||
Push $8
|
||||
Push $9
|
||||
Push $R0
|
||||
|
||||
/* After this point:
|
||||
-------------------------
|
||||
$0 = ResultVar (returned)
|
||||
$1 = EnvVarName (input)
|
||||
$2 = Action (input)
|
||||
$3 = RegLoc (input)
|
||||
$4 = PathString (input)
|
||||
$5 = Orig EnvVar (read from registry)
|
||||
$6 = Len of $0 (temp)
|
||||
$7 = tempstr1 (temp)
|
||||
$8 = Entry counter (temp)
|
||||
$9 = tempstr2 (temp)
|
||||
$R0 = tempChar (temp) */
|
||||
|
||||
; Step 1: Read contents of EnvVarName from RegLoc
|
||||
;
|
||||
; R0 = "user" or "system"
|
||||
|
||||
; Check for empty EnvVarName
|
||||
${If} $1 == ""
|
||||
SetErrors
|
||||
DetailPrint "ERROR: EnvVarName is blank"
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
${EndIf}
|
||||
|
||||
; Check for valid Action
|
||||
${If} $2 != "A"
|
||||
${AndIf} $2 != "P"
|
||||
${AndIf} $2 != "R"
|
||||
SetErrors
|
||||
DetailPrint "ERROR: Invalid Action - must be A, P, or R"
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
${EndIf}
|
||||
|
||||
${If} $3 == HKLM
|
||||
ReadRegStr $5 ${hklm_all_users} $1 ; Get EnvVarName from all users into $5
|
||||
StrCpy $R0 "user"
|
||||
${ElseIf} $3 == HKCU
|
||||
ReadRegStr $5 ${hkcu_current_user} $1 ; Read EnvVarName from current user into $5
|
||||
StrCpy $R0 "system"
|
||||
${Else}
|
||||
SetErrors
|
||||
DetailPrint 'ERROR: Action is [$3] but must be "HKLM" or HKCU"'
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
${EndIf}
|
||||
|
||||
IfErrors 0 +4
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "The $R0 environment variable $1 seems empty, and cannot be modified; set it manually to $4"
|
||||
DetailPrint "Could not read the $R0 environment variable $1; set it manually to $4"
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
|
||||
; Check for empty PathString
|
||||
${If} $4 == ""
|
||||
SetErrors
|
||||
DetailPrint "ERROR: PathString is blank"
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
${EndIf}
|
||||
|
||||
;;khc - here check if length is going to be greater then max string length
|
||||
;; and abort if so - also abort if original path empty - may mean
|
||||
;; it was too long as well- write message to say set it by hand
|
||||
Push $6
|
||||
Push $7
|
||||
Push $8
|
||||
StrLen $7 $4
|
||||
StrLen $6 $5
|
||||
IntOp $8 $6 + $7
|
||||
${If} $5 == ""
|
||||
${OrIf} $8 >= ${NSIS_MAX_STRLEN}
|
||||
SetErrors
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "Current $R0 $1 length ($6) too long to modify in NSIS; set manually if needed"
|
||||
DetailPrint "Current $R0 $1 length ($6) too long to modify in NSIS; set manually if needed"
|
||||
Pop $8
|
||||
Pop $7
|
||||
Pop $6
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
${EndIf}
|
||||
Pop $8
|
||||
Pop $7
|
||||
Pop $6
|
||||
;;khc
|
||||
|
||||
; Make sure we've got some work to do
|
||||
${If} $5 == ""
|
||||
${AndIf} $2 == "R"
|
||||
SetErrors
|
||||
DetailPrint "$1 is empty - Nothing to remove"
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
${EndIf}
|
||||
|
||||
; Step 2: Scrub EnvVar
|
||||
;
|
||||
StrCpy $0 $5 ; Copy the contents to $0
|
||||
; Remove spaces around semicolons (NOTE: spaces before the 1st entry or
|
||||
; after the last one are not removed here but instead in Step 3)
|
||||
${If} $0 != "" ; If EnvVar is not empty ...
|
||||
${Do}
|
||||
${${UN}StrStr} $7 $0 " ;"
|
||||
${If} $7 == ""
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
${${UN}StrRep} $0 $0 " ;" ";" ; Remove '<space>;'
|
||||
${Loop}
|
||||
${Do}
|
||||
${${UN}StrStr} $7 $0 "; "
|
||||
${If} $7 == ""
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
${${UN}StrRep} $0 $0 "; " ";" ; Remove ';<space>'
|
||||
${Loop}
|
||||
${Do}
|
||||
${${UN}StrStr} $7 $0 ";;"
|
||||
${If} $7 == ""
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
${${UN}StrRep} $0 $0 ";;" ";"
|
||||
${Loop}
|
||||
|
||||
; Remove a leading or trailing semicolon from EnvVar
|
||||
StrCpy $7 $0 1 0
|
||||
${If} $7 == ";"
|
||||
StrCpy $0 $0 "" 1 ; Change ';<EnvVar>' to '<EnvVar>'
|
||||
${EndIf}
|
||||
StrLen $6 $0
|
||||
IntOp $6 $6 - 1
|
||||
StrCpy $7 $0 1 $6
|
||||
${If} $7 == ";"
|
||||
StrCpy $0 $0 $6 ; Change ';<EnvVar>' to '<EnvVar>'
|
||||
${EndIf}
|
||||
; DetailPrint "Scrubbed $1: [$0]" ; Uncomment to debug
|
||||
${EndIf}
|
||||
|
||||
/* Step 3. Remove all instances of the target path/string (even if "A" or "P")
|
||||
$6 = bool flag (1 = found and removed PathString)
|
||||
$7 = a string (e.g. path) delimited by semicolon(s)
|
||||
$8 = entry counter starting at 0
|
||||
$9 = copy of $0
|
||||
$R0 = tempChar */
|
||||
|
||||
${If} $5 != "" ; If EnvVar is not empty ...
|
||||
StrCpy $9 $0
|
||||
StrCpy $0 ""
|
||||
StrCpy $8 0
|
||||
StrCpy $6 0
|
||||
|
||||
${Do}
|
||||
${${UN}StrTok} $7 $9 ";" $8 "0" ; $7 = next entry, $8 = entry counter
|
||||
|
||||
${If} $7 == "" ; If we've run out of entries,
|
||||
${ExitDo} ; were done
|
||||
${EndIf} ;
|
||||
|
||||
; Remove leading and trailing spaces from this entry (critical step for Action=Remove)
|
||||
${Do}
|
||||
StrCpy $R0 $7 1
|
||||
${If} $R0 != " "
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
StrCpy $7 $7 "" 1 ; Remove leading space
|
||||
${Loop}
|
||||
${Do}
|
||||
StrCpy $R0 $7 1 -1
|
||||
${If} $R0 != " "
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
StrCpy $7 $7 -1 ; Remove trailing space
|
||||
${Loop}
|
||||
${If} $7 == $4 ; If string matches, remove it by not appending it
|
||||
StrCpy $6 1 ; Set 'found' flag
|
||||
${ElseIf} $7 != $4 ; If string does NOT match
|
||||
${AndIf} $0 == "" ; and the 1st string being added to $0,
|
||||
StrCpy $0 $7 ; copy it to $0 without a prepended semicolon
|
||||
${ElseIf} $7 != $4 ; If string does NOT match
|
||||
${AndIf} $0 != "" ; and this is NOT the 1st string to be added to $0,
|
||||
StrCpy $0 $0;$7 ; append path to $0 with a prepended semicolon
|
||||
${EndIf} ;
|
||||
|
||||
IntOp $8 $8 + 1 ; Bump counter
|
||||
${Loop} ; Check for duplicates until we run out of paths
|
||||
${EndIf}
|
||||
|
||||
; Step 4: Perform the requested Action
|
||||
;
|
||||
${If} $2 != "R" ; If Append or Prepend
|
||||
${If} $6 == 1 ; And if we found the target
|
||||
DetailPrint "Target is already present in $1. It will be removed and"
|
||||
${EndIf}
|
||||
${If} $0 == "" ; If EnvVar is (now) empty
|
||||
StrCpy $0 $4 ; just copy PathString to EnvVar
|
||||
${If} $6 == 0 ; If found flag is either 0
|
||||
${OrIf} $6 == "" ; or blank (if EnvVarName is empty)
|
||||
DetailPrint "$1 was empty and has been updated with the target"
|
||||
${EndIf}
|
||||
${ElseIf} $2 == "A" ; If Append (and EnvVar is not empty),
|
||||
StrCpy $0 $0;$4 ; append PathString
|
||||
${If} $6 == 1
|
||||
DetailPrint "appended to $1"
|
||||
${Else}
|
||||
DetailPrint "Target was appended to $1"
|
||||
${EndIf}
|
||||
${Else} ; If Prepend (and EnvVar is not empty),
|
||||
StrCpy $0 $4;$0 ; prepend PathString
|
||||
${If} $6 == 1
|
||||
DetailPrint "prepended to $1"
|
||||
${Else}
|
||||
DetailPrint "Target was prepended to $1"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Else} ; If Action = Remove
|
||||
${If} $6 == 1 ; and we found the target
|
||||
DetailPrint "Target was found and removed from $1"
|
||||
${Else}
|
||||
DetailPrint "Target was NOT found in $1 (nothing to remove)"
|
||||
${EndIf}
|
||||
${If} $0 == ""
|
||||
DetailPrint "$1 is now empty"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
|
||||
; Step 5: Update the registry at RegLoc with the updated EnvVar and announce the change
|
||||
;
|
||||
ClearErrors
|
||||
${If} $3 == HKLM
|
||||
WriteRegExpandStr ${hklm_all_users} $1 $0 ; Write it in all users section
|
||||
${ElseIf} $3 == HKCU
|
||||
WriteRegExpandStr ${hkcu_current_user} $1 $0 ; Write it to current user section
|
||||
${EndIf}
|
||||
|
||||
IfErrors 0 +4
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "Could not write updated $1 to $3"
|
||||
DetailPrint "Could not write updated $1 to $3"
|
||||
Goto EnvVarUpdate_Restore_Vars
|
||||
|
||||
; "Export" our change
|
||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
||||
|
||||
EnvVarUpdate_Restore_Vars:
|
||||
;
|
||||
; Restore the user's variables and return ResultVar
|
||||
Pop $R0
|
||||
Pop $9
|
||||
Pop $8
|
||||
Pop $7
|
||||
Pop $6
|
||||
Pop $5
|
||||
Pop $4
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $1
|
||||
Push $0 ; Push my $0 (ResultVar)
|
||||
Exch
|
||||
Pop $0 ; Restore his $0
|
||||
|
||||
FunctionEnd
|
||||
|
||||
!macroend ; EnvVarUpdate UN
|
||||
!insertmacro EnvVarUpdate ""
|
||||
!insertmacro EnvVarUpdate "un."
|
||||
;----------------------------------- EnvVarUpdate end----------------------------------------
|
||||
|
||||
!verbose pop
|
||||
!endif
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
# TextLog.nsh v1.1 - 2005-12-26
|
||||
# Written by Mike Schinkel [http://www.mikeschinkel.com/blog/]
|
||||
|
||||
Var /GLOBAL __TextLog_FileHandle
|
||||
Var /GLOBAL __TextLog_FileName
|
||||
Var /GLOBAL __TextLog_State
|
||||
|
||||
!define LogMsg '!insertmacro LogMsgCall'
|
||||
!macro LogMsgCall _text
|
||||
Call LogSetOn
|
||||
Push "${_text}"
|
||||
Call LogText
|
||||
Call LogSetOff
|
||||
!macroend
|
||||
|
||||
|
||||
!define LogText '!insertmacro LogTextCall'
|
||||
!macro LogTextCall _text
|
||||
Push "${_text}"
|
||||
Call LogText
|
||||
!macroend
|
||||
|
||||
Function LogText
|
||||
Exch $0 ; pABC -> 0ABC
|
||||
FileWrite $__TextLog_FileHandle "$0$\r$\n"
|
||||
Pop $0 ; 0ABC -> ABC
|
||||
FunctionEnd
|
||||
|
||||
!define LogSetFileName '!insertmacro LogSetFileNameCall'
|
||||
!macro LogSetFileNameCall _filename
|
||||
Push "${_filename}"
|
||||
Call LogSetFileName
|
||||
!macroend
|
||||
|
||||
Function LogSetFileName
|
||||
Exch $0 ; pABC -> 0ABC
|
||||
StrCpy $__TextLog_FileName "$0"
|
||||
StrCmp $__TextLog_State "open" +1 +3
|
||||
Call LogSetOff
|
||||
Call LogSetOn
|
||||
Pop $0 ; 0ABC -> ABC
|
||||
FunctionEnd
|
||||
|
||||
!define LogSetOn '!insertmacro LogSetOnCall'
|
||||
!macro LogSetOnCall
|
||||
Call LogSetOn
|
||||
!macroend
|
||||
|
||||
Function LogSetOn
|
||||
StrCmp $__TextLog_FileName "" +1 AlreadySet
|
||||
StrCpy $__TextLog_FileName "$INSTDIR\install.log"
|
||||
AlreadySet:
|
||||
StrCmp $__TextLog_State "open" +2
|
||||
FileOpen $__TextLog_FileHandle "$__TextLog_FileName" a
|
||||
FileSeek $__TextLog_FileHandle 0 END
|
||||
StrCpy $__TextLog_State "open"
|
||||
FunctionEnd
|
||||
|
||||
!define LogSetOff '!insertmacro LogSetOffCall'
|
||||
!macro LogSetOffCall
|
||||
Call LogSetOff
|
||||
!macroend
|
||||
|
||||
Function LogSetOff
|
||||
StrCmp $__TextLog_State "open" +1 +2
|
||||
FileClose $__TextLog_FileHandle
|
||||
StrCpy $__TextLog_State ""
|
||||
FunctionEnd
|
||||
|
|
@ -1,183 +0,0 @@
|
|||
#
|
||||
# Taken from http://nsis.sourceforge.net/Setting_Environment_Variables
|
||||
# User handling modified by Fernando Cacciola
|
||||
# Laurent Rineau added un.DeleteEnvStr and adapted it to handle user.
|
||||
#
|
||||
!ifndef _WriteEnvStr_nsh
|
||||
!define _WriteEnvStr_nsh
|
||||
|
||||
#
|
||||
# Macro definition added by Fernando Cacciola
|
||||
#
|
||||
!define WriteEnvStr "!insertmacro WriteEnvStr"
|
||||
!macro WriteEnvStr name value all_users
|
||||
Push ${name}
|
||||
Push ${value}
|
||||
Push ${all_users}
|
||||
Call WriteEnvStr
|
||||
!macroend
|
||||
|
||||
!define un.DeleteEnvStr "!insertmacro un.DeleteEnvStr"
|
||||
!macro un.DeleteEnvStr name all_users
|
||||
Push ${name}
|
||||
Push ${all_users}
|
||||
Call un.DeleteEnvStr
|
||||
!macroend
|
||||
|
||||
!include WinMessages.nsh
|
||||
|
||||
!define WriteEnvStr_RegKey_AllUsers 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
|
||||
|
||||
!define WriteEnvStr_RegKey_CurrentUser 'HKCU "Environment"'
|
||||
|
||||
#
|
||||
# WriteEnvStr - Writes an environment variable
|
||||
# Note: Win9x systems requires reboot
|
||||
#
|
||||
# Example:
|
||||
# Push "HOMEDIR" # name
|
||||
# Push "C:\New Home Dir\" # value
|
||||
# Push 1 (all users) or 0 (current user only)
|
||||
# Call WriteEnvStr
|
||||
#
|
||||
Function WriteEnvStr
|
||||
Exch $2 ; $2 all users?
|
||||
Exch
|
||||
Exch $1 ; $1 has environment variable value
|
||||
Exch 2
|
||||
Exch $0 ; $0 has environment variable name
|
||||
Push $3
|
||||
|
||||
Call IsNT
|
||||
Pop $3
|
||||
StrCmp $3 1 WriteEnvStr_NT
|
||||
; Not on NT
|
||||
StrCpy $3 $WINDIR 2 ; Copy drive of windows (c:)
|
||||
FileOpen $3 "$3\autoexec.bat" a
|
||||
FileSeek $3 0 END
|
||||
FileWrite $3 "$\r$\nSET $0=$1$\r$\n"
|
||||
FileClose $3
|
||||
SetRebootFlag true
|
||||
Goto WriteEnvStr_done
|
||||
|
||||
WriteEnvStr_NT:
|
||||
StrCmp $2 1 AllUsers
|
||||
WriteRegExpandStr ${WriteEnvStr_RegKey_CurrentUser} $0 $1
|
||||
Goto Written
|
||||
AllUsers:
|
||||
WriteRegExpandStr ${WriteEnvStr_RegKey_AllUsers} $0 $1
|
||||
Written:
|
||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
||||
|
||||
WriteEnvStr_done:
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $0
|
||||
Pop $1
|
||||
FunctionEnd
|
||||
|
||||
#
|
||||
# un.DeleteEnvStr - Removes an environment variable
|
||||
# Note: Win9x systems requires reboot
|
||||
#
|
||||
# Example:
|
||||
# Push "HOMEDIR" # name
|
||||
# Push 1 (all users) or 0 (current user only)
|
||||
# Call un.DeleteEnvStr
|
||||
#
|
||||
Function un.DeleteEnvStr
|
||||
Exch $1 ; $1 all users?
|
||||
Exch
|
||||
Exch $0 ; $0 now has the name of the variable
|
||||
Push $2
|
||||
Push $3
|
||||
Push $4
|
||||
Push $5
|
||||
Push $6
|
||||
|
||||
Call un.IsNT
|
||||
Pop $2
|
||||
StrCmp $2 1 DeleteEnvStr_NT
|
||||
; Not on NT
|
||||
StrCpy $2 $WINDIR 2
|
||||
FileOpen $2 "$2\autoexec.bat" r
|
||||
GetTempFileName $5
|
||||
FileOpen $3 $5 w
|
||||
StrCpy $0 "SET $0="
|
||||
SetRebootFlag true
|
||||
|
||||
DeleteEnvStr_dosLoop:
|
||||
FileRead $2 $4
|
||||
StrLen $6 $0
|
||||
StrCpy $6 $4 $6
|
||||
StrCmp $6 $0 DeleteEnvStr_dosLoop
|
||||
StrCmp $6 "" DeleteEnvStr_dosLoopEnd
|
||||
FileWrite $3 $4
|
||||
Goto DeleteEnvStr_dosLoop
|
||||
|
||||
DeleteEnvStr_dosLoopEnd:
|
||||
FileClose $3
|
||||
FileClose $2
|
||||
StrCpy $2 $WINDIR 2
|
||||
Delete "$2\autoexec.bat"
|
||||
CopyFiles /SILENT $5 "$2\autoexec.bat"
|
||||
Delete $5
|
||||
Goto DeleteEnvStr_done
|
||||
|
||||
DeleteEnvStr_NT:
|
||||
StrCmp $1 1 DelAllUsers
|
||||
DeleteRegValue ${WriteEnvStr_RegKey_CurrentUser} $0
|
||||
Goto DelWritten
|
||||
DelAllUsers:
|
||||
DeleteRegValue ${WriteEnvStr_RegKey_AllUsers} $0
|
||||
DelWritten:
|
||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
|
||||
0 "STR:Environment" /TIMEOUT=5000
|
||||
|
||||
DeleteEnvStr_done:
|
||||
Pop $6
|
||||
Pop $5
|
||||
Pop $4
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $1
|
||||
Pop $0
|
||||
FunctionEnd
|
||||
|
||||
!ifndef IsNT_KiCHiK
|
||||
!define IsNT_KiCHiK
|
||||
|
||||
#
|
||||
# [un.]IsNT - Pushes 1 if running on NT, 0 if not
|
||||
#
|
||||
# Example:
|
||||
# Call IsNT
|
||||
# Pop $0
|
||||
# StrCmp $0 1 +3
|
||||
# MessageBox MB_OK "Not running on NT!"
|
||||
# Goto +2
|
||||
# MessageBox MB_OK "Running on NT!"
|
||||
#
|
||||
!macro IsNT UN
|
||||
Function ${UN}IsNT
|
||||
Push $0
|
||||
ReadRegStr $0 HKLM \
|
||||
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
|
||||
StrCmp $0 "" 0 IsNT_yes
|
||||
; we are not NT.
|
||||
Pop $0
|
||||
Push 0
|
||||
Return
|
||||
|
||||
IsNT_yes:
|
||||
; NT!!!
|
||||
Pop $0
|
||||
Push 1
|
||||
FunctionEnd
|
||||
!macroend
|
||||
!insertmacro IsNT ""
|
||||
!insertmacro IsNT "un."
|
||||
|
||||
!endif ; IsNT_KiCHiK
|
||||
|
||||
!endif ; _WriteEnvStr_nsh
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
|
|
@ -1,93 +0,0 @@
|
|||
[Settings]
|
||||
NumFields=11
|
||||
|
||||
[Field 1]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=0
|
||||
Bottom=-5
|
||||
Text=Select default variants
|
||||
|
||||
[Field 2]
|
||||
Type=GroupBox
|
||||
Left=5
|
||||
Right=100
|
||||
Top=10
|
||||
Bottom=-10
|
||||
Text=Compilers
|
||||
|
||||
[Field 3]
|
||||
Type=GroupBox
|
||||
Left=105
|
||||
Right=-5
|
||||
Top=10
|
||||
Bottom=-10
|
||||
Text=Variants
|
||||
|
||||
[Field 4]
|
||||
Type=CheckBox
|
||||
Left=10
|
||||
Top=22
|
||||
Right=95
|
||||
Bottom=32
|
||||
Text=Visual C++ 7.1
|
||||
|
||||
[Field 5]
|
||||
Type=CheckBox
|
||||
Left=10
|
||||
Top=35
|
||||
Right=95
|
||||
Bottom=45
|
||||
Text=Visual C++ 8.0
|
||||
|
||||
; -- Variants
|
||||
|
||||
[Field 6]
|
||||
Type=CheckBox
|
||||
Left=110
|
||||
Top=22
|
||||
Right=-10
|
||||
Bottom=32
|
||||
Text=Multithread Debug
|
||||
|
||||
[Field 7]
|
||||
Type=CheckBox
|
||||
Left=110
|
||||
Right=-15
|
||||
Top=35
|
||||
Bottom=45
|
||||
Text=Multithread
|
||||
|
||||
[Field 8]
|
||||
Type=CheckBox
|
||||
Left=110
|
||||
Right=-10
|
||||
Top=48
|
||||
Bottom=58
|
||||
Text=Multithread, static runtime
|
||||
|
||||
[Field 9]
|
||||
Type=CheckBox
|
||||
Left=110
|
||||
Right=-10
|
||||
Top=61
|
||||
Bottom=71
|
||||
Text=Multithread Debug, static runtime
|
||||
|
||||
[Field 10]
|
||||
Type=CheckBox
|
||||
Left=110
|
||||
Right=-10
|
||||
Top=74
|
||||
Bottom=84
|
||||
Text=Single thread, static runtime
|
||||
|
||||
[Field 11]
|
||||
Type=CheckBox
|
||||
Left=110
|
||||
Right=-10
|
||||
Top=87
|
||||
Bottom=97
|
||||
Text=Single thread Debug, static runtime
|
||||
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
[Settings]
|
||||
NumFields=10
|
||||
|
||||
[Field 1]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=0
|
||||
Bottom=23
|
||||
Text=Select user
|
||||
|
||||
[Field 2]
|
||||
Type=RadioButton
|
||||
Left=10
|
||||
Right=80
|
||||
Top=10
|
||||
Bottom=20
|
||||
Text=All users
|
||||
State=0
|
||||
|
||||
[Field 3]
|
||||
Type=RadioButton
|
||||
Left=90
|
||||
Right=160
|
||||
Top=10
|
||||
Bottom=20
|
||||
Text=Current user
|
||||
State=1
|
||||
|
||||
[Field 4]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=25
|
||||
Bottom=-1
|
||||
Text=Environment variables to set
|
||||
|
||||
[Field 5]
|
||||
Type=Label
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=40
|
||||
Bottom=50
|
||||
Text=Directory where CGAL has been installed.
|
||||
|
||||
|
||||
[Field 6]
|
||||
Type=CheckBox
|
||||
Left=20
|
||||
Right=75
|
||||
Top=55
|
||||
Bottom=65
|
||||
Text=CGAL_DIR
|
||||
State=1
|
||||
|
||||
[Field 7]
|
||||
Type=Text
|
||||
Left=20
|
||||
Right=-10
|
||||
Top=70
|
||||
Bottom=85
|
||||
Text=
|
||||
Flags=READONLY
|
||||
|
||||
[Field 8]
|
||||
Type=Label
|
||||
Left=80
|
||||
Right=-10
|
||||
Top=55
|
||||
Bottom=65
|
||||
Text=
|
||||
Flags=DISABLED
|
||||
|
||||
[Field 9]
|
||||
Type=CheckBox
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=95
|
||||
Bottom=105
|
||||
Text=Add CGAL/auxiliary/gmp/lib to the PATH
|
||||
State=1
|
||||
|
||||
[Field 10]
|
||||
Type=Label
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=110
|
||||
Bottom=135
|
||||
Text=CGAL/auxiliary/gmp/lib contains DLL files. If you do not add this to the PATH, make sure to manually move the DLLs to a directory already in the PATH.
|
||||
Flags=DISABLED
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
[Settings]
|
||||
NumFields=3
|
||||
|
||||
[Field 1]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=0
|
||||
Bottom=-5
|
||||
Text=Post-install changes to Visual Studio project files
|
||||
|
||||
[Field 2]
|
||||
Type=CheckBox
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=20
|
||||
Bottom=30
|
||||
Text=Remove CGAL_USE_GMP from all installed project files
|
||||
State=1
|
||||
|
||||
[Field 3]
|
||||
Type=Label
|
||||
Left=20
|
||||
Right=-10
|
||||
Top=35
|
||||
Bottom=45
|
||||
Text=(because MPFR/GMP has not been installed)
|
||||
Binary file not shown.
|
|
@ -1,65 +0,0 @@
|
|||
;============================
|
||||
; Copyright 2007, 2008, 2009 GeometryFactory (France)
|
||||
; Authors: Andreas Fabri (andreas.fabri@geometryfactrory.com),
|
||||
; Fernando Cacciola (fernando.cacciola@geometryfactrory.com),
|
||||
; Laurent Rineau (laurent.rineau@geometryfactory.com)
|
||||
;============================
|
||||
; Some portions of this file have been derived from "boost.nsi", the Boost Windows Installer, contributed by www.boost-consulting.org.
|
||||
;
|
||||
; Copyright 2006 Daniel Wallin
|
||||
; Copyright 2006 Eric Niebler
|
||||
; Distributed under the Boost Software License, Version 1.0. (See
|
||||
; accompanying file LICENSE_1_0.txt or copy at
|
||||
; http://www.boost.org/LICENSE_1_0.txt)
|
||||
;============================
|
||||
|
||||
;!define SkipFiles
|
||||
;!define SkipSetEnvVar
|
||||
;!define SkipDownload
|
||||
!define ViaFTP
|
||||
|
||||
Var Platform
|
||||
|
||||
!ifdef ViaFTP
|
||||
!define DownloadOK "OK"
|
||||
!define DownloadAborted "cancel"
|
||||
!else
|
||||
!define DownloadOK "success"
|
||||
!define DownloadAborted "cancel"
|
||||
!endif
|
||||
|
||||
!macro DownloadFileFrom SERVER SRC_FOLDER FILE TGT
|
||||
!ifndef SkipDownload
|
||||
!ifdef DebugLog
|
||||
${LogMsg} "Downloadimg ${SERVER}${SRC_FOLDER}${FILE} into ${TGT}\${FILE}"
|
||||
!endif
|
||||
!ifdef ViaFTP
|
||||
inetc::get ${SERVER}${SRC_FOLDER}${FILE} ${TGT}\${FILE}
|
||||
!else
|
||||
NSISdl::download ${SERVER}${SRC_FOLDER}${FILE} ${TGT}\${FILE}
|
||||
!endif
|
||||
Pop $0
|
||||
${If} "$0" == "OK"
|
||||
DetailPrint "${FILE} downloaded successfully."
|
||||
${ElseIf} "$0" == "URL Parts Error"
|
||||
DetailPrint "${FILE} downloaded successfully."
|
||||
${ElseIf} "$0" == "Terminated"
|
||||
DetailPrint "${FILE} download CANCELLED."
|
||||
${ElseIf} "$0" == "Cancelled"
|
||||
DetailPrint "${FILE} download CANCELLED."
|
||||
${Else}
|
||||
MessageBox MB_OK "Unable to download ${SERVER}${SRC_FOLDER}${FILE}. Error: $0"
|
||||
DetailPrint "ERROR $0: Unable to download ${SERVER}${SRC_FOLDER}${FILE}."
|
||||
${Endif}
|
||||
!endif
|
||||
!macroend
|
||||
|
||||
!macro DownloadFile SRC_FOLDER FILE TGT
|
||||
!insertmacro DownloadFileFrom ${FTP_SRC} ${SRC_FOLDER} ${FILE} ${TGT}
|
||||
!macroend
|
||||
|
||||
!macro Install_GMP_MPFR_bin PLATFORM
|
||||
!insertmacro DownloadFile "auxiliary/${PLATFORM}/GMP/5.0.1/" "gmp-all-CGAL-3.9.zip" "$INSTDIR\auxiliary\gmp"
|
||||
!insertmacro DownloadFile "auxiliary/${PLATFORM}/MPFR/3.0.0/" "mpfr-all-CGAL-3.9.zip" "$INSTDIR\auxiliary\gmp"
|
||||
!macroend
|
||||
|
||||
|
|
@ -1,472 +0,0 @@
|
|||
;===========================
|
||||
; Copyright 2007, 2008 GeometryFactory (France)
|
||||
; Author: Andreas Fabri (andreas.fabri@geometryfactrory.com), Fernando Cacciola (fernando.cacciola@geometryfactrory.com)
|
||||
;============================
|
||||
; Some portions of this file have been derived from "boost.nsi", the Boost Windows Installer, contributed by www.boost-consulting.org.
|
||||
;
|
||||
; Copyright 2006 Daniel Wallin
|
||||
; Copyright 2006 Eric Niebler
|
||||
; Distributed under the Boost Software License, Version 1.0. (See
|
||||
; accompanying file LICENSE_1_0.txt or copy at
|
||||
; http://www.boost.org/LICENSE_1_0.txt)
|
||||
;============================
|
||||
|
||||
|
||||
!include "MUI.nsh"
|
||||
!include "Sections.nsh"
|
||||
!include "LogicLib.nsh"
|
||||
!include "Locate.nsh"
|
||||
!include "WriteEnvStr.nsh"
|
||||
!include "EnvVarUpdate.nsh"
|
||||
!include "x64.nsh"
|
||||
|
||||
;!define DebugLog
|
||||
|
||||
!ifdef DebugLog
|
||||
!include "TextLog.nsh"
|
||||
!endif
|
||||
|
||||
!include "script_cgal.nsh"
|
||||
|
||||
!define CGAL_SRC "CGAL-4.8"
|
||||
!define FTP_SRC "https://cgal.geometryfactory.com/CGAL/precompiled_libs/"
|
||||
|
||||
;--------------------------------
|
||||
; General
|
||||
;--------------------------------
|
||||
|
||||
;Name and file
|
||||
Name "${CGAL_SRC}"
|
||||
|
||||
!ifdef FetchLocal
|
||||
OutFile "${CGAL_SRC}-Full-Setup.exe"
|
||||
!else
|
||||
OutFile "${CGAL_SRC}-Setup.exe"
|
||||
!endif
|
||||
|
||||
;Default installation folder: C:\dev\CGAL-4.8
|
||||
; See also .onInit
|
||||
Installdir ""
|
||||
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey HKCU "Software\${CGAL_SRC}" ""
|
||||
|
||||
BrandingText "The CGAL Project and GeometryFactory - Installer created with NSIS."
|
||||
|
||||
VIProductVersion "4.8.0.0"
|
||||
VIAddVersionKey "ProductName" "CGAL Windows Installer"
|
||||
VIAddVersionKey "CompanyName" "The CGAL Project and GeometryFactory"
|
||||
VIAddVersionKey "LegalCopyright" "© The CGAL Project and GeometryFactory"
|
||||
VIAddVersionKey "FileDescription" "Windows Installer for CGAL"
|
||||
VIAddVersionKey "FileVersion" "4.8"
|
||||
|
||||
;--------------------------------
|
||||
; Variables
|
||||
;--------------------------------
|
||||
|
||||
Var SetCGAL_DIR
|
||||
Var RegLoc
|
||||
Var Add_GMP_LIB_DIR_to_PATH
|
||||
|
||||
;--------------------------------
|
||||
; Interface Settings
|
||||
;--------------------------------
|
||||
|
||||
!define MUI_ICON "cgal.ico"
|
||||
!define MUI_UNICON "cgal.ico"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
|
||||
!define MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH
|
||||
|
||||
!define MUI_HEADERIMAGE_BITMAP "cgal_very_small_FFFFFF.bmp" ; optional
|
||||
!define MUI_HEADERIMAGE_UNBITMAP "cgal_very_small_FFFFFF.bmp" ; optional
|
||||
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP Zirkel.bmp
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP Zirkel.bmp
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
|
||||
!define MUI_WELCOMEPAGE_TEXT "This downloads ${CGAL_SRC} to your machine."
|
||||
|
||||
!define MUI_FINISHPAGE_TITLE "Downloading finished"
|
||||
|
||||
!define MUI_FINISHPAGE_TEXT "You have downloaded CGAL successfully. Please continue the installation, reading the installation instructions."
|
||||
|
||||
!define MUI_FINISHPAGE_LINK "Installation instructions"
|
||||
|
||||
!define MUI_FINISHPAGE_LINK_LOCATION "https://www.cgal.org/download/windows.html"
|
||||
|
||||
;--------------------------------
|
||||
; Pages
|
||||
;--------------------------------
|
||||
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "${CGAL_SRC}\LICENSE"
|
||||
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
|
||||
; A page where the user can specify a default variant configuration (taken from the boost installer)
|
||||
Page custom VariantsPage
|
||||
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
|
||||
; A page where the user can check/uncheck the environment variables
|
||||
; used to specify paths in vcproj files to be added.
|
||||
Page custom envarsPage
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
|
||||
;--------------------------------
|
||||
; Languages
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
;--------------------------------
|
||||
; Sections
|
||||
;--------------------------------
|
||||
|
||||
|
||||
;--------------------------------
|
||||
Section "!Main CGAL" MAIN_Idx
|
||||
|
||||
!ifndef SkipFiles
|
||||
SectionIn RO
|
||||
SetOutPath "$INSTDIR\auxiliary"
|
||||
File /nonfatal /r "${CGAL_SRC}\auxiliary\*.*"
|
||||
SetOutPath "$INSTDIR\cmake"
|
||||
File /r "${CGAL_SRC}\cmake\*.*"
|
||||
SetOutPath "$INSTDIR\doc_html"
|
||||
File /r "${CGAL_SRC}\doc_html\*.*"
|
||||
SetOutPath "$INSTDIR\include"
|
||||
File /r "${CGAL_SRC}\include\*.*"
|
||||
SetOutPath "$INSTDIR\lib"
|
||||
File /r "${CGAL_SRC}\lib\*.*"
|
||||
SetOutPath "$INSTDIR\scripts"
|
||||
File /r "${CGAL_SRC}\scripts\*.*"
|
||||
SetOutPath "$INSTDIR\src"
|
||||
File /r "${CGAL_SRC}\src\*.*"
|
||||
SetOutPath "$INSTDIR\demo\icons"
|
||||
File /r "${CGAL_SRC}\demo\icons\*.*"
|
||||
SetOutPath "$INSTDIR\demo\resources"
|
||||
File /r "${CGAL_SRC}\demo\resources\*.*"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${CGAL_SRC}\AUTHORS"
|
||||
File "${CGAL_SRC}\CGALConfig.cmake"
|
||||
File "${CGAL_SRC}\CHANGES.md"
|
||||
File "${CGAL_SRC}\CMakeLists.txt"
|
||||
File "${CGAL_SRC}\INSTALL.md"
|
||||
File "${CGAL_SRC}\LICENSE"
|
||||
File "${CGAL_SRC}\LICENSE.BSL"
|
||||
File "${CGAL_SRC}\LICENSE.LGPL"
|
||||
File "${CGAL_SRC}\LICENSE.GPL"
|
||||
File "${CGAL_SRC}\LICENSE.RFL"
|
||||
File "${CGAL_SRC}\VERSION"
|
||||
File ".\cgal.ico"
|
||||
!endif
|
||||
|
||||
; Write uninstall informations
|
||||
; http://nsis.sourceforge.net/Add_uninstall_information_to_Add/Remove_Programs
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"DisplayName" "${CGAL_SRC} -- Computational Geometry Algorithms Library, version 4.8"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S"
|
||||
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"NoModify" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"NoRepair" 1
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"InstallLocation" "$\"$INSTDIR$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"DisplayIcon" "$\"$INSTDIR\cgal.ico$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"Publisher" "The CGAL Project and GeometryFactory"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"URLInfoAbout" "https://www.cgal.org/"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"DisplayedVersion" "4.8.0"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"CGALUninstallRegLoc" "$RegLoc"
|
||||
|
||||
;Create uninstaller
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
SectionEnd
|
||||
;--------------------------------
|
||||
|
||||
;--------------------------------
|
||||
Section "CGAL Examples and Demos" SAMPLES_Idx
|
||||
|
||||
!ifndef SkipFiles
|
||||
SetOutPath "$INSTDIR\examples"
|
||||
File /r "${CGAL_SRC}\examples\*.*"
|
||||
SetOutPath "$INSTDIR\demo"
|
||||
File /r "${CGAL_SRC}\demo\*.*"
|
||||
!endif
|
||||
SectionEnd
|
||||
|
||||
; Download and install GMP and MPFR binaries.
|
||||
; Depend only on the platform (one variant per platform)
|
||||
Section "GMP and MPFR precompiled libs" GMP_LIB_Idx
|
||||
!ifndef FetchLocal
|
||||
!insertmacro Install_GMP_MPFR_bin "$Platform"
|
||||
!endif
|
||||
SectionEnd
|
||||
|
||||
|
||||
;--------------------------------
|
||||
|
||||
|
||||
Section /o "HTML Manuals" DOC_Idx
|
||||
!ifndef FetchLocal
|
||||
!insertmacro DownloadFileFrom "https://cgal.geometryfactory.com/" "CGAL/4.8/Manual/" "cgal_manual.zip" "$INSTDIR\doc_html"
|
||||
!endif
|
||||
SectionEnd
|
||||
|
||||
Section "-Unzip"
|
||||
|
||||
${locate::Open} "$INSTDIR" "/D=0 /X=zip" $0
|
||||
${If} $0 <> 0
|
||||
${Do}
|
||||
${locate::Find} $0 $1 $2 $3 $4 $5 $6
|
||||
${If} "$1" != ""
|
||||
ZipDLL::extractall $1 $2
|
||||
Pop $7
|
||||
${If} "$7" == "success"
|
||||
Delete $1
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${LoopUntil} "$1" == ""
|
||||
${EndIf}
|
||||
${locate::Close} $0
|
||||
${locate::Unload}
|
||||
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
|
||||
Section "Uninstall"
|
||||
|
||||
;ADD YOUR OWN FILES HERE...
|
||||
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
ReadRegStr $RegLoc HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}" \
|
||||
"CGALUninstallRegLoc"
|
||||
|
||||
DeleteRegKey /ifempty HKCU "Software\${CGAL_SRC}"
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${CGAL_SRC}"
|
||||
|
||||
${un.EnvVarUpdate} $0 "PATH" "R" $RegLoc "$INSTDIR\auxiliary\gmp\lib"
|
||||
${If} $RegLoc == HKLM
|
||||
${un.DeleteEnvStr} "CGAL_DIR" 1
|
||||
${Else}
|
||||
${un.DeleteEnvStr} "CGAL_DIR" 0
|
||||
${EndIf}
|
||||
|
||||
SectionEnd
|
||||
|
||||
|
||||
|
||||
|
||||
;--------------------------------
|
||||
;Descriptions
|
||||
|
||||
;Language strings
|
||||
LangString DESC_MAIN ${LANG_ENGLISH} "The main components of the CGAL Library."
|
||||
LangString DESC_SAMPLES ${LANG_ENGLISH} "The CGAL demos and examples, for which you need Qt 5 in order to build them (and Qt 3 for some)."
|
||||
LangString DESC_GMP_LIB ${LANG_ENGLISH} "The precompiled GMP and MPFR libraries (needed for exact constructions)."
|
||||
LangString DESC_DOC ${LANG_ENGLISH} "The HTML manuals."
|
||||
LangString DESC_ENVSET ${LANG_ENGLISH} "already set"
|
||||
|
||||
;Assign language strings to sections
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${MAIN_Idx} $(DESC_MAIN)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SAMPLES_Idx} $(DESC_SAMPLES)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${GMP_LIB_Idx} $(DESC_GMP_LIB)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${DOC_Idx} $(DESC_DOC)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
|
||||
;--------------------------------
|
||||
; Functions
|
||||
;--------------------------------
|
||||
|
||||
Function .onInit
|
||||
|
||||
# Setup the default installation dir
|
||||
${If} $InstDir == "" ; /D= was not used on the command line
|
||||
StrCpy $InstDir "C:\dev\${CGAL_SRC}"
|
||||
${EndIf}
|
||||
|
||||
!ifdef DebugLog
|
||||
${LogSetFileName} "${CGAL_SRC}_install_log.txt"
|
||||
${LogSetOn}
|
||||
!endif
|
||||
|
||||
StrCpy $Platform "win32"
|
||||
|
||||
# the plugins dir is automatically deleted when the installer exits
|
||||
InitPluginsDir
|
||||
File /oname=$PLUGINSDIR\splash.bmp ".\CGAL.bmp"
|
||||
advsplash::show 1000 600 400 -1 $PLUGINSDIR\splash
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "variants.ini"
|
||||
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "environment_variables.ini"
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function .onInstSuccess
|
||||
|
||||
${If} $SetCGAL_DIR != ""
|
||||
; RegLoc can be either HKLM (all users) or HKCU (current user).
|
||||
${If} $RegLoc == HKLM
|
||||
${WriteEnvStr} "CGAL_DIR" $SetCGAL_DIR 1
|
||||
${Else}
|
||||
${WriteEnvStr} "CGAL_DIR" $SetCGAL_DIR 0
|
||||
${Endif}
|
||||
${EndIf}
|
||||
|
||||
${If} $Add_GMP_LIB_DIR_to_PATH = 1
|
||||
; Append "$INSTDIR\auxiliary\gmp\lib" to the PATH.
|
||||
; RegLoc can be either HKLM (all users) or HKCU (current user).
|
||||
; The return value goes to $0
|
||||
${EnvVarUpdate} $0 "PATH" "A" $RegLoc "$INSTDIR\auxiliary\gmp\lib"
|
||||
${EndIf}
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function VariantsPage
|
||||
|
||||
!insertmacro MUI_HEADER_TEXT "Select platform" "Choose the platform for precompiled libraries."
|
||||
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "variants.ini"
|
||||
!insertmacro MUI_INSTALLOPTIONS_SHOW
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_READ $0 "variants.ini" "Field 1" "State"
|
||||
${If} $0 = 1
|
||||
StrCpy $Platform "win32"
|
||||
${Else}
|
||||
StrCpy $Platform "x64"
|
||||
${Endif}
|
||||
|
||||
FunctionEnd
|
||||
|
||||
# Disables the env var checkbox # FN and textbox # FN+1
|
||||
!macro UncheckEnvStrCheckbox FN
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "environment_variables.ini" "Field ${FN}" "State" "0"
|
||||
!macroend
|
||||
|
||||
!macro CheckEnvStrCheckbox FN
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "environment_variables.ini" "Field ${FN}" "State" "1"
|
||||
!macroend
|
||||
|
||||
!macro DisableEnvStrCheckbox FN
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "environment_variables.ini" "Field ${FN}" "Flags" "DISABLED"
|
||||
!macroend
|
||||
|
||||
!macro EnableEnvStrCheckbox FN
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "environment_variables.ini" "Field ${FN}" "Flags" ""
|
||||
!macroend
|
||||
|
||||
# Disables the env var checkbox # FN
|
||||
!macro SetEnvStrValueSlot FN VAL
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "environment_variables.ini" "Field ${FN}" "State" "${VAL}"
|
||||
!macroend
|
||||
|
||||
!macro SetEnvStrLabel FN VAL
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "environment_variables.ini" "Field ${FN}" "Text" "${VAL}"
|
||||
!macroend
|
||||
|
||||
|
||||
Function envarsPage
|
||||
|
||||
Push $0
|
||||
Push $1
|
||||
Push $2
|
||||
Push $3
|
||||
Push $4
|
||||
Push $5
|
||||
|
||||
|
||||
!insertmacro MUI_HEADER_TEXT "Setting Environment Variables" "Choose whether to set or not the following environment variables"
|
||||
|
||||
ReadEnvStr $1 "CGAL_DIR" # $1 = existing value for CGAL_DIR
|
||||
|
||||
!insertmacro SetEnvStrValueSlot 7 $INSTDIR
|
||||
!insertmacro SetEnvStrValueSlot 7 $INSTDIR
|
||||
|
||||
${If} $1 != ""
|
||||
StrCpy $3 "($(DESC_ENVSET): $1 )"
|
||||
!insertmacro UncheckEnvStrCheckbox 6
|
||||
!insertmacro SetEnvStrLabel 8 $3
|
||||
${Endif}
|
||||
|
||||
SectionGetText ${GMP_LIB_Idx} $2
|
||||
|
||||
SectionGetFlags ${GMP_LIB_Idx} $1
|
||||
IntOp $2 $1 & ${SF_SELECTED}
|
||||
|
||||
${If} $2 == 0
|
||||
!insertmacro UncheckEnvStrCheckbox 9
|
||||
!insertmacro DisableEnvStrCheckbox 9
|
||||
${Else}
|
||||
!insertmacro CheckEnvStrCheckbox 9
|
||||
!insertmacro EnableEnvStrCheckbox 9
|
||||
${Endif}
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "environment_variables.ini"
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_SHOW_RETURN
|
||||
Pop $0
|
||||
${If} "$0" = "success"
|
||||
# PROCESSING - Installs selected environment variables
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_READ $3 "environment_variables.ini" "Field 2" "State" # $3=Is ALL USERS selected
|
||||
|
||||
${If} $3 == 1
|
||||
StrCpy $RegLoc "HKLM"
|
||||
${Else}
|
||||
StrCpy $RegLoc "HKCU"
|
||||
${EndIf}
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_READ $3 "environment_variables.ini" "Field 6" "State" # CGAL_DIR checkbox
|
||||
!insertmacro MUI_INSTALLOPTIONS_READ $4 "environment_variables.ini" "Field 7" "State" # CGAL_DIR value
|
||||
${If} $3 == 1
|
||||
StrCpy $SetCGAL_DIR $4
|
||||
${EndIF}
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_READ $5 "environment_variables.ini" "Field 9" "State" # Add to PATH checkbox
|
||||
${If} $5 == 1
|
||||
StrCpy $Add_GMP_LIB_DIR_to_PATH 1
|
||||
${EndIF}
|
||||
|
||||
${EndIf}
|
||||
|
||||
Pop $5
|
||||
Pop $4
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $1
|
||||
Pop $0
|
||||
|
||||
FunctionEnd
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
[Settings]
|
||||
NumFields=2
|
||||
|
||||
[Field 1]
|
||||
Type=RadioButton
|
||||
Text=32-bits
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=2
|
||||
Bottom=12
|
||||
State=1
|
||||
|
||||
[Field 2]
|
||||
Type=RadioButton
|
||||
Text=64-bits
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=15
|
||||
Bottom=24
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB |
|
|
@ -1,5 +0,0 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1 +0,0 @@
|
|||
Win32-specific installation procedures
|
||||
|
|
@ -1 +0,0 @@
|
|||
Andreas Fabri <Andreas.Fabri@geometryfactory.com>
|
||||
Loading…
Reference in New Issue