From 63eadcef976d7bbee4b91d6d082af9ca3e4b8435 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Fri, 24 Mar 2017 13:10:06 -0500 Subject: [PATCH 1/7] force --gui for shell during compilation if -DFORCE_GUI is set --- package/win/shell.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/package/win/shell.cpp b/package/win/shell.cpp index b0904e9e6..3863befe2 100644 --- a/package/win/shell.cpp +++ b/package/win/shell.cpp @@ -23,7 +23,12 @@ int main(int argc, char **argv, char **env) char exe_path[MAX_PATH] = {0}; char script_path[MAX_PATH]; + char gui_flag[6] = {" --gui"}; +#ifdef FORCE_GUI + char** command_line = (char**)malloc(sizeof(char*) * ((++ argc) + 1+6)); +#else char** command_line = (char**)malloc(sizeof(char*) * ((++ argc) + 1)); +#endif { // Unicode path. This will not be used directly, but to test, whether // there are any non-ISO characters, in which case the path is converted to a @@ -67,8 +72,14 @@ int main(int argc, char **argv, char **env) _makepath(script_path, drive, dir, "slic3r", "pl"); command_line[0] = exe_path; command_line[1] = script_path; +#ifdef FORCE_GUI + command_line[2] = gui_flag; + memcpy(command_line + 3, argv + 1, sizeof(char*) * (argc - 2)); + command_line[argc+6] = NULL; +#else memcpy(command_line + 2, argv + 1, sizeof(char*) * (argc - 2)); command_line[argc] = NULL; +#endif // Unset the PERL5LIB and PERLLIB environment variables. SetEnvironmentVariable("PERL5LIB", NULL); SetEnvironmentVariable("PERLLIB", NULL); From 59f801d2ed29a8702a21391df7b5f7acb68a6e1d Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Fri, 24 Mar 2017 13:11:21 -0500 Subject: [PATCH 2/7] added compile flag for FORCE_GUI --- package/win/compile_wrapper.ps1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/win/compile_wrapper.ps1 b/package/win/compile_wrapper.ps1 index fc6f15b97..5a2fc5819 100644 --- a/package/win/compile_wrapper.ps1 +++ b/package/win/compile_wrapper.ps1 @@ -11,5 +11,7 @@ $perllib = "-lperl$perlver" windres slic3r.rc -O coff -o slic3r.res g++ -c -I'C:\strawberry\perl\lib\CORE\' shell.cpp -o slic3r.o +g++ -c -I'C:\strawberry\perl\lib\CORE\' -DFORCE_GUI shell.cpp -o slic3r-gui.o g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r.o slic3r.res -o slic3r.exe | Write-Host +g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r-gui.o slic3r.res -o slic3r-gui.exe | Write-Host From 3534dc8084ce13e70de06b1067e72ba9fa771faf Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Fri, 24 Mar 2017 13:11:53 -0500 Subject: [PATCH 3/7] added slic3r-gui.exe --- package/win/package_win32.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/package/win/package_win32.ps1 b/package/win/package_win32.ps1 index 70127d76b..ccffef3ae 100644 --- a/package/win/package_win32.ps1 +++ b/package/win/package_win32.ps1 @@ -44,6 +44,7 @@ cpanm "PAR::Packer" pp ` -a "slic3r.exe;slic3r.exe" ` +-a "slic3r.exe;slic3r-gui.exe" ` -a "../../lib;lib" ` -a "../../local-lib;local-lib" ` -a "../../slic3r.pl;slic3r.pl" ` From 8719dea4e53d1d2820b11d789bab23d553d7f41f Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Fri, 24 Mar 2017 13:16:46 -0500 Subject: [PATCH 4/7] change execs to slic3r-console and slic3r --- package/win/package_win32.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/win/package_win32.ps1 b/package/win/package_win32.ps1 index ccffef3ae..f2e9ecbbd 100644 --- a/package/win/package_win32.ps1 +++ b/package/win/package_win32.ps1 @@ -44,7 +44,7 @@ cpanm "PAR::Packer" pp ` -a "slic3r.exe;slic3r.exe" ` --a "slic3r.exe;slic3r-gui.exe" ` +-a "slic3r.exe;slic3r-console.exe" ` -a "../../lib;lib" ` -a "../../local-lib;local-lib" ` -a "../../slic3r.pl;slic3r.pl" ` From 68ab876bec02477f147187fb8f7f3ad503571f85 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Fri, 24 Mar 2017 13:17:35 -0500 Subject: [PATCH 5/7] slic3r-console now doesn't have gui turned on by default, slic3r does --- package/win/compile_wrapper.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/win/compile_wrapper.ps1 b/package/win/compile_wrapper.ps1 index 5a2fc5819..9b6e0f2cb 100644 --- a/package/win/compile_wrapper.ps1 +++ b/package/win/compile_wrapper.ps1 @@ -12,6 +12,6 @@ $perllib = "-lperl$perlver" windres slic3r.rc -O coff -o slic3r.res g++ -c -I'C:\strawberry\perl\lib\CORE\' shell.cpp -o slic3r.o g++ -c -I'C:\strawberry\perl\lib\CORE\' -DFORCE_GUI shell.cpp -o slic3r-gui.o -g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r.o slic3r.res -o slic3r.exe | Write-Host -g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r-gui.o slic3r.res -o slic3r-gui.exe | Write-Host +g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r.o slic3r.res -o slic3r-console.exe | Write-Host +g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r-gui.o slic3r.res -o slic3r.exe | Write-Host From 8adeb2b5d0983f768167ba22d93ee425cdea897a Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Sat, 25 Mar 2017 23:37:16 -0500 Subject: [PATCH 6/7] Forgot to account for null character --- package/win/compile_wrapper.ps1 | 4 ++-- package/win/shell.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/win/compile_wrapper.ps1 b/package/win/compile_wrapper.ps1 index 9b6e0f2cb..5704788ff 100644 --- a/package/win/compile_wrapper.ps1 +++ b/package/win/compile_wrapper.ps1 @@ -12,6 +12,6 @@ $perllib = "-lperl$perlver" windres slic3r.rc -O coff -o slic3r.res g++ -c -I'C:\strawberry\perl\lib\CORE\' shell.cpp -o slic3r.o g++ -c -I'C:\strawberry\perl\lib\CORE\' -DFORCE_GUI shell.cpp -o slic3r-gui.o -g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r.o slic3r.res -o slic3r-console.exe | Write-Host -g++ -v -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r-gui.o slic3r.res -o slic3r.exe | Write-Host +g++ -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r.o slic3r.res -o slic3r-console.exe | Write-Host +g++ -static-libgcc -static-libstdc++ -L'C:\strawberry\c\lib' -L'C:\strawberry\perl\bin' -L'C:\strawberry\perl\lib\CORE\' $perllib slic3r-gui.o slic3r.res -o slic3r.exe | Write-Host diff --git a/package/win/shell.cpp b/package/win/shell.cpp index 3863befe2..2808a2772 100644 --- a/package/win/shell.cpp +++ b/package/win/shell.cpp @@ -23,7 +23,7 @@ int main(int argc, char **argv, char **env) char exe_path[MAX_PATH] = {0}; char script_path[MAX_PATH]; - char gui_flag[6] = {" --gui"}; + char gui_flag[7] = {" --gui"}; #ifdef FORCE_GUI char** command_line = (char**)malloc(sizeof(char*) * ((++ argc) + 1+6)); #else From 00744c259cb835af7b3b992a93cd99aad5734f35 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Mon, 27 Mar 2017 21:46:06 -0500 Subject: [PATCH 7/7] Append the --gui flag if compiled with -DFORCE_GUI. --- package/win/shell.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/package/win/shell.cpp b/package/win/shell.cpp index 2808a2772..e4fe45d20 100644 --- a/package/win/shell.cpp +++ b/package/win/shell.cpp @@ -23,9 +23,9 @@ int main(int argc, char **argv, char **env) char exe_path[MAX_PATH] = {0}; char script_path[MAX_PATH]; - char gui_flag[7] = {" --gui"}; + char gui_flag[6] = {"--gui"}; #ifdef FORCE_GUI - char** command_line = (char**)malloc(sizeof(char*) * ((++ argc) + 1+6)); + char** command_line = (char**)malloc(sizeof(char*) * ((++ argc) + 2)); #else char** command_line = (char**)malloc(sizeof(char*) * ((++ argc) + 1)); #endif @@ -72,12 +72,11 @@ int main(int argc, char **argv, char **env) _makepath(script_path, drive, dir, "slic3r", "pl"); command_line[0] = exe_path; command_line[1] = script_path; -#ifdef FORCE_GUI - command_line[2] = gui_flag; - memcpy(command_line + 3, argv + 1, sizeof(char*) * (argc - 2)); - command_line[argc+6] = NULL; -#else memcpy(command_line + 2, argv + 1, sizeof(char*) * (argc - 2)); +#ifdef FORCE_GUI + command_line[argc] = gui_flag; + command_line[argc+1] = NULL; +#else command_line[argc] = NULL; #endif // Unset the PERL5LIB and PERLLIB environment variables. @@ -89,7 +88,11 @@ int main(int argc, char **argv, char **env) printf(" %d: %s\r\n", i, command_line[i]); #endif } +#ifdef FORCE_GUI + RunPerl(argc+1, command_line, NULL); +#else RunPerl(argc, command_line, NULL); +#endif free(command_line); }