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:
Laurent Rineau 2021-03-10 10:39:25 +01:00
commit 2282df03bd
30 changed files with 14 additions and 2006 deletions

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.
*/

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,5 +0,0 @@
Utrecht University (The Netherlands),
ETH Zurich (Switzerland),
INRIA Sophia-Antipolis (France),
Max-Planck-Institute Saarbruecken (Germany),
Tel-Aviv University (Israel).

View File

@ -1 +0,0 @@
Win32-specific installation procedures

View File

@ -1 +0,0 @@
Andreas Fabri <Andreas.Fabri@geometryfactory.com>