mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-13 22:25:52 +08:00
fix compile
This commit is contained in:
parent
5633824f87
commit
a9675a3f0b
95
.github/workflows/ccpp_mac_release.yml
vendored
95
.github/workflows/ccpp_mac_release.yml
vendored
@ -1,95 +0,0 @@
|
||||
name: C/C++ CI macos
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Get current date
|
||||
id: date
|
||||
run: echo "::set-output name=date::$(date +'%Y%m%d')"
|
||||
- name: change date in version
|
||||
run: |
|
||||
sed "s/+UNKNOWN/_$(date '+%F')/" version.inc > version.date.inc
|
||||
mv version.date.inc version.inc
|
||||
- name: mkdir in deps
|
||||
run: mkdir deps/build
|
||||
- name: cmake deps
|
||||
working-directory: ./deps/build
|
||||
run: cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13"
|
||||
- name: make deps
|
||||
working-directory: ./deps/build
|
||||
run: make
|
||||
- name: clean deps
|
||||
working-directory: ./deps/build
|
||||
run: rm -rf dep_*
|
||||
- name: mkdir build
|
||||
run: mkdir build
|
||||
- name: cmake
|
||||
working-directory: ./build
|
||||
run: cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -DSLIC3R_STATIC=1
|
||||
- name: make slic3r
|
||||
working-directory: ./build
|
||||
run: make slic3r
|
||||
- name: update Info.plist
|
||||
working-directory: ./build/src
|
||||
run: sed "s/+UNKNOWN/_$(date '+%F')/" Info.plist >Info.date.plist
|
||||
- name: create directory and copy into it
|
||||
working-directory: ./build
|
||||
run: |
|
||||
mkdir SuperSlicer
|
||||
mkdir SuperSlicer/SuperSlicer.app
|
||||
mkdir SuperSlicer/SuperSlicer.app/Contents
|
||||
mkdir SuperSlicer/SuperSlicer.app/Contents/_CodeSignature
|
||||
mkdir SuperSlicer/SuperSlicer.app/Contents/Frameworks
|
||||
mkdir SuperSlicer/SuperSlicer.app/Contents/MacOS
|
||||
- name: copy resources
|
||||
working-directory: ./build
|
||||
run: |
|
||||
cp -Rf ../resources SuperSlicer/SuperSlicer.app/Contents/resources
|
||||
cp SuperSlicer/SuperSlicer.app/Contents/resources/icons/slic3r.icns SuperSlicer/SuperSlicer.app/Contents/resources/Slic3r.icns
|
||||
cp src/Info.date.plist SuperSlicer/SuperSlicer.app/Contents/Info.plist
|
||||
echo -n -e 'APPL????\x0a' > PkgInfo
|
||||
cp PkgInfo SuperSlicer/SuperSlicer.app/Contents/PkgInfo
|
||||
# echo -n -e '\xff\xfeAPPL\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x0a\x00' > PkgInfo
|
||||
- name: copy bin
|
||||
working-directory: ./build
|
||||
run: |
|
||||
cp -f src/superslicer SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer
|
||||
chmod u+x SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer
|
||||
tar -zcvf SuperSlicer.tar.gz SuperSlicer
|
||||
- name: create dmg
|
||||
working-directory: ./build
|
||||
run: |
|
||||
hdiutil create -ov -fs HFS+ -volname "SuperSlicer" -srcfolder "SuperSlicer" temp.dmg
|
||||
hdiutil convert temp.dmg -format UDZO -o SuperSlicer.dmg
|
||||
# - name: signing resources (creating CodeResources inside _CodeSignature)
|
||||
# working-directory: .
|
||||
# run: codesign -s <identity> resources
|
||||
# maybe i should just try to do that on a separate pc and copy the file here, more secure as a signing process.
|
||||
- name: Upload Release Asset
|
||||
id: upload-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ github.event.release.upload_url }}
|
||||
asset_path: ./build/SuperSlicer.tar.gz
|
||||
asset_name: SuperSlicer_${{ github.event.release.tag_name }}_macos_${{steps.date.outputs.date}}.tar.gz
|
||||
asset_content_type: application/gzip
|
||||
- name: Upload Release Asset
|
||||
id: upload-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./build/nightly_macos.dmg
|
||||
asset_name: SuperSlicer_${{ github.event.release.tag_name }}_macos_${{steps.date.outputs.date}}.dmg
|
||||
asset_content_type: application/x-apple-diskimage
|
2
.github/workflows/ccpp_ubuntu.yml
vendored
2
.github/workflows/ccpp_ubuntu.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
||||
- name: update apt
|
||||
run: sudo apt update
|
||||
- name: install gtk2 glew
|
||||
run: sudo apt install libgtk2.0-dev libglew-dev libudev-dev
|
||||
run: sudo apt install libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev
|
||||
- name: mkdir in deps
|
||||
run: mkdir deps/build
|
||||
- name: cmake deps
|
||||
|
70
.github/workflows/ccpp_ubuntu_release.yml
vendored
70
.github/workflows/ccpp_ubuntu_release.yml
vendored
@ -1,70 +0,0 @@
|
||||
name: C/C++ CI ubuntu
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: update clock
|
||||
run: sudo hwclock -s
|
||||
- name: Get current date
|
||||
id: date
|
||||
run: echo "::set-output name=date::$(date +'%Y%m%d')"
|
||||
- name: change date in version
|
||||
run: sed -i "s/+UNKNOWN/_$(date '+%F')/" version.inc
|
||||
- name: update apt
|
||||
run: sudo apt update
|
||||
- name: install gtk2 glew
|
||||
run: sudo apt install libgtk2.0-dev libglew-dev libudev-dev
|
||||
- name: mkdir in deps
|
||||
run: mkdir deps/build
|
||||
- name: cmake deps
|
||||
working-directory: ./deps/build
|
||||
run: cmake ..
|
||||
- name: make deps
|
||||
working-directory: ./deps/build
|
||||
run: make
|
||||
- name: clean deps
|
||||
working-directory: ./deps/build
|
||||
run: rm -rf dep_*
|
||||
- name: mkdir build
|
||||
run: mkdir build
|
||||
- name: cmake
|
||||
working-directory: ./build
|
||||
run: cmake .. -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1
|
||||
- name: make slic3r
|
||||
working-directory: ./build
|
||||
run: make slic3r
|
||||
- name: create directory and copy into it
|
||||
working-directory: ./build
|
||||
run: |
|
||||
mkdir package
|
||||
mkdir package/bin
|
||||
- name: copy resources
|
||||
working-directory: ./build
|
||||
run: cp -Rf ../resources package/resources
|
||||
- name: copy bin
|
||||
working-directory: ./build
|
||||
run: cp -f src/superslicer package/bin/superslicer
|
||||
- name: create sh from echo
|
||||
working-directory: ./build/package
|
||||
run: |
|
||||
echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/superslicer" "$@"' >SuperSlicer
|
||||
chmod u+x superslicer
|
||||
tar -zcvf ../SuperSlicer.tar.gz .
|
||||
- name: Upload Release Asset
|
||||
id: upload-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ github.event.release.upload_url }}
|
||||
asset_path: ./build/SuperSlicer.tar.gz
|
||||
asset_name: SuperSlicer_${{ github.event.release.tag_name }}_ubu64_${{steps.date.outputs.date}}.tar.gz
|
||||
asset_content_type: application/gzip
|
@ -433,10 +433,10 @@ add_custom_target(gettext_po_to_mo
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMENT "Generate localization po files (binary) from mo files (texts)"
|
||||
)
|
||||
file(GLOB L10N_PO_FILES "${L10N_DIR}/*/PrusaSlicer*.po")
|
||||
file(GLOB L10N_PO_FILES "${L10N_DIR}/*/SuperSlicer*.po")
|
||||
foreach(po_file ${L10N_PO_FILES})
|
||||
GET_FILENAME_COMPONENT(po_dir "${po_file}" DIRECTORY)
|
||||
SET(mo_file "${po_dir}/PrusaSlicer.mo")
|
||||
SET(mo_file "${po_dir}/SuperSlicer.mo")
|
||||
add_custom_command(
|
||||
TARGET gettext_po_to_mo PRE_BUILD
|
||||
COMMAND msgfmt ARGS -o ${mo_file} ${po_file}
|
||||
|
@ -17,6 +17,16 @@ where `N` is the number of CPU cores available.
|
||||
|
||||
Additional CMake flags may be applicable as explained below.
|
||||
|
||||
### How to build
|
||||
|
||||
You can follow the [script](https://github.com/supermerill/SuperSlicer/blob/master/.github/workflows/ccpp_ubuntu.yml) the build server use to create the ubuntu release.
|
||||
|
||||
You have to execute each command at the right of the 'run: ' tags, in the directory that is at the right of the previous 'working-directory:' tag.
|
||||
|
||||
You can stop after the `make slic3r` as the rest of the commands are for building the launch script and the appimage.
|
||||
|
||||
# Old doc, not up-to-date:
|
||||
|
||||
### Dependency resolution
|
||||
|
||||
By default SuperSlicer looks for dependencies the default way CMake looks for them, i.e. in default system locations.
|
||||
|
@ -11,6 +11,17 @@ To build SuperSlicer on Mac OS, you will need the following software:
|
||||
XCode is available through Apple's App Store, the other three tools are available on
|
||||
[brew](https://brew.sh/) (use `brew install cmake git gettext` to install them).
|
||||
|
||||
### How to build
|
||||
|
||||
You can follow the [script](https://github.com/supermerill/SuperSlicer/blob/master/.github/workflows/ccpp_mac.yml) the build server use to create the ubuntu release.
|
||||
|
||||
You have to execute each command at the right of the 'run: ' tags, in the directory that is at the right of the previous 'working-directory:' tag.
|
||||
|
||||
You can stop after the `make slic3r` as the rest of the commands are for building the .dmg
|
||||
|
||||
# Old doc, not up-to-date:
|
||||
|
||||
|
||||
### Dependencies
|
||||
|
||||
SuperSlicer comes with a set of CMake scripts to build its dependencies, it lives in the `deps` directory.
|
||||
|
@ -1,12 +1,30 @@
|
||||
|
||||
# Building SuperSlicer on Microsoft Windows
|
||||
|
||||
The currently supported way of building SuperSlicer on Windows is with CMake and MS Visual Studio 2017.
|
||||
You can use the free [Visual Studio 2017 Community Edition](https://www.visualstudio.com/vs/older-downloads/).
|
||||
The currently supported way of building SuperSlicer on Windows is with CMake and [MS Visual Studio 2019](https://visualstudio.microsoft.com/fr/vs).
|
||||
CMake installer can be downloaded from [the official website](https://cmake.org/download/).~~
|
||||
|
||||
Building with newer versions of MSVS (2019) should work too.
|
||||
Building with [Visual Studio 2017 Community Edition](https://www.visualstudio.com/vs/older-downloads/). should work too.
|
||||
|
||||
### How to build
|
||||
|
||||
You have to build the dependancies (in ./deps/build)
|
||||
```
|
||||
cmake .. -G "Visual Studio 16 2019" -A x64
|
||||
msbuild /m ALL_BUILD.vcxproj
|
||||
```
|
||||
|
||||
and then build superslicer (in ./build):
|
||||
```
|
||||
cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="PATH_TO_SuperSlicer\deps\destdir\usr\local"
|
||||
msbuild /m /P:Configuration=Release INSTALL.vcxproj
|
||||
```
|
||||
You can also build it in visual studio, for that open the .sln.
|
||||
Note that you need to have `libgmp-10.dll` and `libmpfr-4.dll` next to your built superslicer. You can get them from any superslicer release.
|
||||
|
||||
If you want to create the zipped release, you can follow this [script](https://github.com/supermerill/SuperSlicer/blob/master/.github/workflows/ccpp_win.yml).
|
||||
|
||||
# Old doc, not up-to-date:
|
||||
|
||||
### Building the dependencies package yourself
|
||||
|
||||
|
@ -91,7 +91,7 @@ endif()
|
||||
|
||||
# Create a slic3r executable
|
||||
# Process mainfests for various platforms.
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/PrusaSlicer.rc.in ${CMAKE_CURRENT_BINARY_DIR}/slic3r.rc @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/SuperSlicer.rc.in ${CMAKE_CURRENT_BINARY_DIR}/slic3r.rc @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/PrusaSlicer-gcodeviewer.rc.in ${CMAKE_CURRENT_BINARY_DIR}/PrusaSlicer-gcodeviewer.rc @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/PrusaSlicer.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/slic3r.manifest @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/osx/Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist @ONLY)
|
||||
|
@ -23,7 +23,6 @@ namespace Slic3r {
|
||||
|
||||
class ExPolygon;
|
||||
class Surface;
|
||||
enum InfillPattern : int;
|
||||
|
||||
namespace FillAdaptive {
|
||||
struct Octree;
|
||||
|
@ -92,7 +92,7 @@ int16_t get_fan_speed(const std::string &line, GCodeFlavor flavor) {
|
||||
|
||||
}
|
||||
|
||||
void FanMover::_put_in_middle_G1(std::list<BufferData>::iterator &item_to_split, float nb_sec, BufferData &&line_to_write) {
|
||||
void FanMover::_put_in_middle_G1(std::list<BufferData>::iterator item_to_split, float nb_sec, BufferData &&line_to_write) {
|
||||
//std::cout << "_put_in_middle_G1\n";
|
||||
assert(item_to_split != m_buffer.end());
|
||||
if (nb_sec < item_to_split->time * 0.1) {
|
||||
|
@ -73,13 +73,13 @@ private:
|
||||
m_buffer.emplace_back(data);
|
||||
return m_buffer.back();
|
||||
}
|
||||
std::list<BufferData>::iterator remove_from_buffer(std::list<BufferData>::iterator& data) {
|
||||
std::list<BufferData>::iterator remove_from_buffer(std::list<BufferData>::iterator data) {
|
||||
m_buffer_time_size -= data->time;
|
||||
return m_buffer.erase(data);
|
||||
}
|
||||
// Processes the given gcode line
|
||||
void _process_gcode_line(GCodeReader& reader, const GCodeReader::GCodeLine& line);
|
||||
void _put_in_middle_G1(std::list<BufferData>::iterator& item_to_split, float nb_sec, BufferData&& line_to_write);
|
||||
void _put_in_middle_G1(std::list<BufferData>::iterator item_to_split, float nb_sec, BufferData&& line_to_write);
|
||||
void _print_in_middle_G1(BufferData& line_to_split, float nb_sec, const std::string& line_to_write);
|
||||
void _remove_slow_fan(int16_t min_speed, float past_sec);
|
||||
};
|
||||
|
@ -479,11 +479,13 @@ void GCodeProcessor::TimeProcessor::post_process(const std::string& filename)
|
||||
in.close();
|
||||
|
||||
std::error_code err_code;
|
||||
if (err_code = rename_file(out_path, filename))
|
||||
if(copy_file(out_path, filename, (std::string("Failed to rename the output G-code file from ") + out_path + " to " + filename + '\n' +
|
||||
"Is " + out_path + " locked? (gcp)" + err_code.message() + '\n'), true) != SUCCESS)
|
||||
if (err_code = rename_file(out_path, filename)) {
|
||||
std::string err_msg = (std::string("Failed to rename the output G-code file from ") + out_path + " to " + filename + '\n' +
|
||||
"Is " + out_path + " locked? (gcp)" + err_code.message() + '\n');
|
||||
if (copy_file(out_path, filename, err_msg, true) != SUCCESS)
|
||||
throw Slic3r::RuntimeError(std::string("Failed to rename the output G-code file from ") + out_path + " to " + filename + '\n' +
|
||||
"Is " + out_path + " locked? (gcp)" + err_code.message() + '\n');
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<std::pair<GCodeProcessor::EProducer, std::string>> GCodeProcessor::Producers = {
|
||||
|
@ -78,7 +78,7 @@ enum AuthorizationType {
|
||||
atKeyPassword, atUserPassword
|
||||
};
|
||||
|
||||
enum InfillPattern {
|
||||
enum InfillPattern : uint8_t{
|
||||
ipRectilinear, ipGrid, ipTriangles, ipStars, ipCubic, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb,
|
||||
ipGyroid, ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral,
|
||||
ipAdaptiveCubic, ipSupportCubic,
|
||||
|
@ -22,4 +22,4 @@ PRODUCTVERSION @SLIC3R_RC_VERSION@
|
||||
}
|
||||
}
|
||||
2 ICON "@SLIC3R_RESOURCES_DIR@/icons/PrusaSlicer-gcodeviewer.ico"
|
||||
1 24 "PrusaSlicer.manifest"
|
||||
1 24 "slic3r.manifest"
|
||||
|
@ -175,7 +175,7 @@ void init_print(std::vector<TriangleMesh> &&meshes, Slic3r::Print &print, Slic3r
|
||||
}
|
||||
|
||||
print.apply(model, config);
|
||||
model.arrange_objects(model, InfiniteBed{}, ArrangeParams{ scaled(min_object_distance(config))});
|
||||
arrange_objects(&print, model, InfiniteBed{}, ArrangeParams{ scaled(print.config().min_object_distance()) });
|
||||
print.apply(model, config);
|
||||
print.validate();
|
||||
print.set_status_silent();
|
||||
|
@ -43,7 +43,7 @@ SCENARIO("Model construction", "[Model]") {
|
||||
}
|
||||
model_object->add_instance();
|
||||
print.apply(model, config); // apply config for arrange_objects
|
||||
arrange_objects(print, model, InfiniteBed{scaled(Vec2d(100, 100))}, ArrangeParams{scaled(min_object_distance(config))});
|
||||
arrange_objects(&print, model, InfiniteBed{ scaled(Vec2d(100, 100)) }, ArrangeParams{ scaled(print.config().min_object_distance()) });
|
||||
model_object->ensure_on_bed();
|
||||
print.auto_assign_extruders(model_object);
|
||||
THEN("Print works?") {
|
||||
|
@ -21,7 +21,7 @@ using boost::polygon::voronoi_diagram;
|
||||
|
||||
using namespace Slic3r;
|
||||
|
||||
using VD = Geometry::VoronoiDiagram;
|
||||
using VD = Slic3r::VoronoiDiagram;
|
||||
|
||||
// https://svn.boost.org/trac10/ticket/12067
|
||||
// This bug seems to be confirmed.
|
||||
|
Loading…
x
Reference in New Issue
Block a user