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
|
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.
|
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,
|
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.
|
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
|
folder of the package(s) that you are using to learn how to specify \cgal and additional third party
|
||||||
dependencies.
|
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
|
\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
|
folder of the package(s) that you are using to learn how to specify \cgal and additional third party
|
||||||
dependencies.
|
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
|
Width_3 E
|
||||||
iostream ETIMU
|
iostream ETIMU
|
||||||
kdtree T
|
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