diff --git a/SuperBuild/cmake/External-OpenCV.cmake b/SuperBuild/cmake/External-OpenCV.cmake index 64ca5308..731cca20 100644 --- a/SuperBuild/cmake/External-OpenCV.cmake +++ b/SuperBuild/cmake/External-OpenCV.cmake @@ -4,6 +4,7 @@ set(_SB_BINARY_DIR "${SB_BINARY_DIR}/${_proj_name}") if (WIN32) set(WIN32_CMAKE_EXTRA_ARGS -DPYTHON3_NUMPY_INCLUDE_DIRS=${PYTHON_HOME}/lib/site-packages/numpy/core/include -DPYTHON3_PACKAGES_PATH=${PYTHON_HOME}/lib/site-packages + -DWITH_MSMF=OFF -DOPENCV_LIB_INSTALL_PATH=${SB_INSTALL_DIR}/lib -DOPENCV_BIN_INSTALL_PATH=${SB_INSTALL_DIR}/bin) endif() diff --git a/configure.py b/configure.py index 9276a613..f7eee1c2 100644 --- a/configure.py +++ b/configure.py @@ -129,13 +129,31 @@ def clean(): safe_remove(os.path.join("SuperBuild", "install")) def dist(): - # D:\Program Files (x86)\Inno Setup 6 - run("compil32 /cc \"innosetup.iss\") + # Download innosetup + if not os.path.isdir("innosetup"): + innosetup_url = "https://github.com/OpenDroneMap/windows-deps/releases/download/2.5.0/innosetup-portable-win32-6.0.5-3.zip" + if not os.path.exists("innosetup.zip"): + print("Downloading %s" % innosetup_url) + with urllib.request.urlopen(innosetup_url) as response, open( "innosetup.zip", 'wb') as out_file: + shutil.copyfileobj(response, out_file) + + os.mkdir("innosetup") + + print("Extracting innosetup.zip --> innosetup/") + with zipfile.ZipFile("innosetup.zip") as z: + z.extractall("innosetup") + + # Run + run("innosetup\\compil32 /cc \"innosetup.iss\"") + + print("Done! Setup created in dist/") if args.action == 'build': build() elif args.action == 'vcpkg_export': vcpkg_export() +elif args.action == 'dist': + dist() elif args.action == 'clean': clean() else: diff --git a/innosetup.iss b/innosetup.iss index 6a3a1627..450ae988 100644 --- a/innosetup.iss +++ b/innosetup.iss @@ -9,21 +9,18 @@ #define MyAppPublisher "OpenDroneMap" #define MyAppURL "https://opendronemap.org" -#define InnoRoot "D:\webodm-lightning" - [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) -AppId={{E75D901B-A57E-4FDC-9F2E-36B0CF8DE895} +AppId={{443998BA-9F8F-4A69-9A96-0D8FBC8C6393} AppName={#MyAppName} AppVersion={#MyAppVersion} -;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} -DefaultDirName={autopf}\WebODM Lightning +DefaultDirName=C:\ODM DefaultGroupName={#MyAppName} AllowNoIcons=yes LicenseFile=LICENSE @@ -41,12 +38,19 @@ UsePreviousAppDir=no Name: "english"; MessagesFile: "compiler:Default.isl" [Files] -Source: "contrib"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: "licenses"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: "opendm"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: "stages"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: "stages"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: "venv"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "contrib\*"; DestDir: "{app}\contrib"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "licenses\*"; DestDir: "{app}\licenses"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "opendm\*"; DestDir: "{app}\opendm"; Excludes: "__pycache__"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "stages\*"; DestDir: "{app}\stages"; Excludes: "__pycache__"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "SuperBuild\install\bin\*"; DestDir: "{app}\SuperBuild\install\bin"; Excludes: "__pycache__"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "venv\*"; DestDir: "{app}\venv"; Excludes: "__pycache__"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "console.bat"; DestDir: "{app}"; Flags: ignoreversion +Source: "VERSION"; DestDir: "{app}"; Flags: ignoreversion +Source: "LICENSE"; DestDir: "{app}"; Flags: ignoreversion +Source: "run.bat"; DestDir: "{app}"; Flags: ignoreversion +Source: "run.py"; DestDir: "{app}"; Flags: ignoreversion +Source: "settings.yaml"; DestDir: "{app}"; Flags: ignoreversion +Source: "win32env.bat"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: {group}\ODM Console; Filename: "{app}\console.bat"; WorkingDir: "{app}"