Fix of previous commit, added symlinks to gcodeviewer on Linux & OSX

This commit is contained in:
Vojtech Bubnik 2020-09-07 16:56:22 +02:00
parent a251d42408
commit 9473ae8fe2
2 changed files with 28 additions and 12 deletions

View file

@ -209,20 +209,31 @@ if (WIN32)
add_custom_target(PrusaSlicerDllsCopy ALL DEPENDS PrusaSlicer) add_custom_target(PrusaSlicerDllsCopy ALL DEPENDS PrusaSlicer)
prusaslicer_copy_dlls(PrusaSlicerDllsCopy) prusaslicer_copy_dlls(PrusaSlicerDllsCopy)
elseif (XCODE)
# Because of Debug/Release/etc. configurations (similar to MSVC) the slic3r binary is located in an extra level
add_custom_command(TARGET PrusaSlicer POST_BUILD
COMMAND ln -sfn "${SLIC3R_RESOURCES_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/resources"
COMMENT "Symlinking the resources directory into the build tree"
VERBATIM
)
else () else ()
if (XCODE)
add_custom_command(TARGET PrusaSlicer POST_BUILD
COMMAND ln -sf "${CMAKE_CURRENT_BINARY_DIR}/PrusaSlicer" "${CMAKE_CURRENT_BINARY_DIR}/prusa-slicer"
COMMAND ln -sf "${CMAKE_CURRENT_BINARY_DIR}/PrusaSlicer" "${CMAKE_CURRENT_BINARY_DIR}/prusa-gcodeviewer"
COMMAND ln -sf "${CMAKE_CURRENT_BINARY_DIR}/PrusaSlicer" "${CMAKE_CURRENT_BINARY_DIR}/PrusaGCodeViewer"
COMMENT "Symlinking the G-code viewer to PrusaSlicer, symlinking to prusa-slicer and prusa-gcodeviewer"
VERBATIM
)
# Because of Debug/Release/etc. configurations (similar to MSVC) the slic3r binary is located in an extra level
set(BIN_RESOURCES_DIR "${CMAKE_CURRENT_BINARY_DIR}/resources")
else ()
add_custom_command(TARGET PrusaSlicer POST_BUILD
COMMAND ln -sf "${CMAKE_CURRENT_BINARY_DIR}/prusa-slicer" "${CMAKE_CURRENT_BINARY_DIR}/prusa-gcodeviewer"
COMMENT "Symlinking the G-code viewer to PrusaSlicer"
VERBATIM
)
set(BIN_RESOURCES_DIR "${CMAKE_CURRENT_BINARY_DIR}/../resources")
endif ()
add_custom_command(TARGET PrusaSlicer POST_BUILD add_custom_command(TARGET PrusaSlicer POST_BUILD
COMMAND ln -sfn "${SLIC3R_RESOURCES_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/../resources" COMMAND ln -sfn "${SLIC3R_RESOURCES_DIR}" "${BIN_RESOURCES_DIR}"
COMMENT "Symlinking the resources directory into the build tree" COMMENT "Symlinking the resources directory into the build tree"
VERBATIM VERBATIM
) )
endif() endif ()
# Slic3r binary install target # Slic3r binary install target
if (WIN32) if (WIN32)

View file

@ -53,7 +53,7 @@ static void start_new_slicer_or_gcodeviewer(const NewSlicerInstanceType instance
{ {
std::vector<const char*> args; std::vector<const char*> args;
args.reserve(3); args.reserve(3);
#ifdef(__linux) #ifdef __linux
static const char *gcodeviewer_param = "--gcodeviewer"; static const char *gcodeviewer_param = "--gcodeviewer";
{ {
// If executed by an AppImage, start the AppImage, not the main process. // If executed by an AppImage, start the AppImage, not the main process.
@ -63,17 +63,22 @@ static void start_new_slicer_or_gcodeviewer(const NewSlicerInstanceType instance
args.emplace_back(appimage_binary); args.emplace_back(appimage_binary);
if (instance_type == NewSlicerInstanceType::GCodeViewer) if (instance_type == NewSlicerInstanceType::GCodeViewer)
args.emplace_back(gcodeviewer_param); args.emplace_back(gcodeviewer_param);
if ()
} }
} }
#endif // __linux #endif // __linux
std::string bin_path;
if (args.empty()) {
// Binary path was not set to the AppImage in the Linux specific block above, call the application directly.
bin_path = (own_path.parent_path() / ((instance_type == NewSlicerInstanceType::Slicer) ? "prusa-slicer" : "prusa-gcodeviewer")).string();
args.emplace_back(bin_path.c_str());
}
std::string to_open; std::string to_open;
if (path_to_open) { if (path_to_open) {
to_open = into_u8(*path_to_open); to_open = into_u8(*path_to_open);
args.emplace_back(to_open.c_str()); args.emplace_back(to_open.c_str());
} }
args.emplace_back(nullptr); args.emplace_back(nullptr);
wxExecute(const_cast<char**>(&args.data()), wxEXEC_ASYNC | wxEXEC_HIDE_CONSOLE | wxEXEC_MAKE_GROUP_LEADER); wxExecute(const_cast<char**>(args.data()), wxEXEC_ASYNC | wxEXEC_HIDE_CONSOLE | wxEXEC_MAKE_GROUP_LEADER);
} }
#endif // Linux or Unix #endif // Linux or Unix
#endif // Win32 #endif // Win32