Precompiled headers on Visual Studio & GCC, with the highest hopes

that it will not break the build server.
This commit is contained in:
bubnikv 2018-10-29 16:01:26 +01:00
parent 35d984b812
commit 5377304b0c
8 changed files with 652 additions and 119 deletions

View File

@ -32,7 +32,8 @@ if (MSVC)
add_compile_options(/MP) add_compile_options(/MP)
endif () endif ()
# /bigobj (Increase Number of Sections in .Obj file) # /bigobj (Increase Number of Sections in .Obj file)
add_compile_options(-bigobj) # error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm90' or greater
add_compile_options(-bigobj -Zm316)
endif () endif ()
# CMAKE_PREFIX_PATH is used to point CMake to the remaining dependencies (Boost, TBB, ...) # CMAKE_PREFIX_PATH is used to point CMake to the remaining dependencies (Boost, TBB, ...)

View File

@ -0,0 +1,214 @@
# Function for setting up precompiled headers. Usage:
#
# add_library/executable(target
# pchheader.c pchheader.cpp pchheader.h)
#
# add_precompiled_header(target pchheader.h
# [FORCEINCLUDE]
# [SOURCE_C pchheader.c]
# [SOURCE_CXX pchheader.cpp])
#
# Options:
#
# FORCEINCLUDE: Add compiler flags to automatically include the
# pchheader.h from every source file. Works with both GCC and
# MSVC. This is recommended.
#
# SOURCE_C/CXX: Specifies the .c/.cpp source file that includes
# pchheader.h for generating the pre-compiled header
# output. Defaults to pchheader.c. Only required for MSVC.
#
# Caveats:
#
# * Its not currently possible to use the same precompiled-header in
# more than a single target in the same directory (No way to set
# the source file properties differently for each target).
#
# * MSVC: A source file with the same name as the header must exist
# and be included in the target (E.g. header.cpp). Name of file
# can be changed using the SOURCE_CXX/SOURCE_C options.
#
# License:
#
# Copyright (C) 2009-2017 Lars Christensen <larsch@belunktum.dk>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the 'Software') deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
include(CMakeParseArguments)
macro(combine_arguments _variable)
set(_result "")
foreach(_element ${${_variable}})
set(_result "${_result} \"${_element}\"")
endforeach()
string(STRIP "${_result}" _result)
set(${_variable} "${_result}")
endmacro()
function(export_all_flags _filename)
set(_include_directories "$<TARGET_PROPERTY:${_target},INCLUDE_DIRECTORIES>")
set(_compile_definitions "$<TARGET_PROPERTY:${_target},COMPILE_DEFINITIONS>")
set(_compile_flags "$<TARGET_PROPERTY:${_target},COMPILE_FLAGS>")
set(_compile_options "$<TARGET_PROPERTY:${_target},COMPILE_OPTIONS>")
set(_include_directories "$<$<BOOL:${_include_directories}>:-I$<JOIN:${_include_directories},\n-I>\n>")
set(_compile_definitions "$<$<BOOL:${_compile_definitions}>:-D$<JOIN:${_compile_definitions},\n-D>\n>")
set(_compile_flags "$<$<BOOL:${_compile_flags}>:$<JOIN:${_compile_flags},\n>\n>")
set(_compile_options "$<$<BOOL:${_compile_options}>:$<JOIN:${_compile_options},\n>\n>")
file(GENERATE OUTPUT "${_filename}" CONTENT "${_compile_definitions}${_include_directories}${_compile_flags}${_compile_options}\n")
endfunction()
function(add_precompiled_header _target _input)
cmake_parse_arguments(_PCH "FORCEINCLUDE" "SOURCE_CXX;SOURCE_C" "" ${ARGN})
get_filename_component(_input_we ${_input} NAME_WE)
if(NOT _PCH_SOURCE_CXX)
set(_PCH_SOURCE_CXX "${_input_we}.cpp")
endif()
if(NOT _PCH_SOURCE_C)
set(_PCH_SOURCE_C "${_input_we}.c")
endif()
if(MSVC)
set(_pch_cxx_pch "${CMAKE_CFG_INTDIR}/cxx_${_input_we}.pch")
set(_pch_c_pch "${CMAKE_CFG_INTDIR}/c_${_input_we}.pch")
get_target_property(sources ${_target} SOURCES)
foreach(_source ${sources})
set(_pch_compile_flags "")
if(_source MATCHES \\.\(cc|cxx|cpp|c\)$)
if(_source MATCHES \\.\(cpp|cxx|cc\)$)
set(_pch_header "${_input}")
set(_pch "${_pch_cxx_pch}")
else()
set(_pch_header "${_input}")
set(_pch "${_pch_c_pch}")
endif()
if(_source STREQUAL "${_PCH_SOURCE_CXX}")
set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_cxx_pch}\" \"/Yc${_input}\"")
set(_pch_source_cxx_found TRUE)
set_source_files_properties("${_source}" PROPERTIES OBJECT_OUTPUTS "${_pch_cxx_pch}")
elseif(_source STREQUAL "${_PCH_SOURCE_C}")
set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_c_pch}\" \"/Yc${_input}\"")
set(_pch_source_c_found TRUE)
set_source_files_properties("${_source}" PROPERTIES OBJECT_OUTPUTS "${_pch_c_pch}")
else()
if(_source MATCHES \\.\(cpp|cxx|cc\)$)
set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_cxx_pch}\" \"/Yu${_input}\"")
set(_pch_source_cxx_needed TRUE)
set_source_files_properties("${_source}" PROPERTIES OBJECT_DEPENDS "${_pch_cxx_pch}")
else()
set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_c_pch}\" \"/Yu${_input}\"")
set(_pch_source_c_needed TRUE)
set_source_files_properties("${_source}" PROPERTIES OBJECT_DEPENDS "${_pch_c_pch}")
endif()
if(_PCH_FORCEINCLUDE)
set(_pch_compile_flags "${_pch_compile_flags} /FI${_input}")
endif(_PCH_FORCEINCLUDE)
endif()
get_source_file_property(_object_depends "${_source}" OBJECT_DEPENDS)
if(NOT _object_depends)
set(_object_depends)
endif()
if(_PCH_FORCEINCLUDE)
list(APPEND _object_depends "${CMAKE_CURRENT_SOURCE_DIR}/${_pch_header}")
endif()
set_source_files_properties(${_source} PROPERTIES
COMPILE_FLAGS "${_pch_compile_flags}"
OBJECT_DEPENDS "${_object_depends}")
endif()
endforeach()
if(_pch_source_cxx_needed AND NOT _pch_source_cxx_found)
message(FATAL_ERROR "A source file ${_PCH_SOURCE_CXX} for ${_input} is required for MSVC builds. Can be set with the SOURCE_CXX option.")
endif()
if(_pch_source_c_needed AND NOT _pch_source_c_found)
message(FATAL_ERROR "A source file ${_PCH_SOURCE_C} for ${_input} is required for MSVC builds. Can be set with the SOURCE_C option.")
endif()
endif(MSVC)
if(CMAKE_COMPILER_IS_GNUCXX)
get_filename_component(_name ${_input} NAME)
set(_pch_header "${CMAKE_CURRENT_SOURCE_DIR}/${_input}")
set(_pch_binary_dir "${CMAKE_CURRENT_BINARY_DIR}/${_target}_pch")
set(_pchfile "${_pch_binary_dir}/${_input}")
set(_outdir "${CMAKE_CURRENT_BINARY_DIR}/${_target}_pch/${_name}.gch")
file(MAKE_DIRECTORY "${_outdir}")
set(_output_cxx "${_outdir}/.c++")
set(_output_c "${_outdir}/.c")
set(_pch_flags_file "${_pch_binary_dir}/compile_flags.rsp")
export_all_flags("${_pch_flags_file}")
set(_compiler_FLAGS "@${_pch_flags_file}")
add_custom_command(
OUTPUT "${_pchfile}"
COMMAND "${CMAKE_COMMAND}" -E copy "${_pch_header}" "${_pchfile}"
DEPENDS "${_pch_header}"
COMMENT "Updating ${_name}")
add_custom_command(
OUTPUT "${_output_cxx}"
COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} -x c++-header -o "${_output_cxx}" "${_pchfile}"
DEPENDS "${_pchfile}" "${_pch_flags_file}"
COMMENT "Precompiling ${_name} for ${_target} (C++)")
add_custom_command(
OUTPUT "${_output_c}"
COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} -x c-header -o "${_output_c}" "${_pchfile}"
DEPENDS "${_pchfile}" "${_pch_flags_file}"
COMMENT "Precompiling ${_name} for ${_target} (C)")
get_property(_sources TARGET ${_target} PROPERTY SOURCES)
foreach(_source ${_sources})
set(_pch_compile_flags "")
if(_source MATCHES \\.\(cc|cxx|cpp|c\)$)
get_source_file_property(_pch_compile_flags "${_source}" COMPILE_FLAGS)
if(NOT _pch_compile_flags)
set(_pch_compile_flags)
endif()
separate_arguments(_pch_compile_flags)
list(APPEND _pch_compile_flags -Winvalid-pch)
if(_PCH_FORCEINCLUDE)
list(APPEND _pch_compile_flags -include "${_pchfile}")
else(_PCH_FORCEINCLUDE)
list(APPEND _pch_compile_flags "-I${_pch_binary_dir}")
endif(_PCH_FORCEINCLUDE)
get_source_file_property(_object_depends "${_source}" OBJECT_DEPENDS)
if(NOT _object_depends)
set(_object_depends)
endif()
list(APPEND _object_depends "${_pchfile}")
if(_source MATCHES \\.\(cc|cxx|cpp\)$)
list(APPEND _object_depends "${_output_cxx}")
else()
list(APPEND _object_depends "${_output_c}")
endif()
combine_arguments(_pch_compile_flags)
set_source_files_properties(${_source} PROPERTIES
COMPILE_FLAGS "${_pch_compile_flags}"
OBJECT_DEPENDS "${_object_depends}")
endif()
endforeach()
endif(CMAKE_COMPILER_IS_GNUCXX)
endfunction()

View File

@ -1,9 +1,13 @@
project(libslic3r) project(libslic3r)
cmake_minimum_required(VERSION 2.6) cmake_minimum_required(VERSION 2.6)
include(PrecompiledHeader)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libslic3r_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libslic3r_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h @ONLY)
add_library(libslic3r STATIC add_library(libslic3r STATIC
pchheader.cpp
pchheader.hpp
BoundingBox.cpp BoundingBox.cpp
BoundingBox.hpp BoundingBox.hpp
BridgeDetector.cpp BridgeDetector.cpp
@ -151,6 +155,8 @@ add_library(libslic3r STATIC
Utils.hpp Utils.hpp
) )
add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE)
target_compile_definitions(libslic3r PUBLIC -DUSE_TBB ${PNG_DEFINITIONS}) target_compile_definitions(libslic3r PUBLIC -DUSE_TBB ${PNG_DEFINITIONS})
target_include_directories(libslic3r PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${LIBNEST2D_INCLUDES} ${PNG_INCLUDE_DIRS}) target_include_directories(libslic3r PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${LIBNEST2D_INCLUDES} ${PNG_INCLUDE_DIRS})
target_link_libraries(libslic3r target_link_libraries(libslic3r

View File

@ -0,0 +1 @@
#include "pchheader.hpp"

122
src/libslic3r/pchheader.hpp Normal file
View File

@ -0,0 +1,122 @@
#ifdef WIN32
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#ifndef NOMINMAX
#define NOMINMAX
#endif
#endif
#include <float.h>
#include <math.h>
#include <stdarg.h>
#include <stdint.h>
#include <string.h>
#include <cassert>
#include <climits>
#include <cmath>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <algorithm>
#include <atomic>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iostream>
#include <istream>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <numeric>
#include <ostream>
#include <queue>
#include <regex>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <string>
#include <thread>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/case_conv.hpp>
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/erase.hpp>
#include <boost/algorithm/string/find.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/bind.hpp>
#include <boost/config.hpp>
#include <boost/config/warning_disable.hpp>
#include <boost/date_time/local_time/local_time.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/foreach.hpp>
#include <boost/format.hpp>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/box.hpp>
#include <boost/geometry/geometries/point.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/index/rtree.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/locale.hpp>
#include <boost/log/core.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/trivial.hpp>
#include <boost/multi_array.hpp>
#include <boost/nowide/cenv.hpp>
#include <boost/nowide/convert.hpp>
#include <boost/nowide/cstdio.hpp>
#include <boost/nowide/cstdlib.hpp>
#include <boost/nowide/fstream.hpp>
#include <boost/nowide/integration/filesystem.hpp>
#include <boost/nowide/iostream.hpp>
#include <boost/property_tree/ini_parser.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/thread.hpp>
#include <boost/version.hpp>
#include <tbb/atomic.h>
#include <tbb/parallel_for.h>
#include <tbb/spin_mutex.h>
#include <tbb/mutex.h>
#include <tbb/task_group.h>
#include <tbb/task_scheduler_init.h>
#include <Eigen/Dense>
#include <Eigen/Geometry>
#include "BoundingBox.hpp"
#include "ClipperUtils.hpp"
#include "Config.hpp"
#include "I18N.hpp"
#include "MultiPoint.hpp"
#include "Point.hpp"
#include "Polygon.hpp"
#include "Polyline.hpp"
#include "SVG.hpp"
#include "libslic3r.h"
#include "libslic3r_version.h"
#include "clipper.hpp"
#include <Shiny/Shiny.h>
#include <admesh/stl.h>

View File

@ -1,122 +1,130 @@
project(libslic3r_gui)
cmake_minimum_required(VERSION 2.6)
include(PrecompiledHeader)
add_library(libslic3r_gui STATIC add_library(libslic3r_gui STATIC
${LIBDIR}/slic3r/GUI/AboutDialog.cpp pchheader.cpp
${LIBDIR}/slic3r/GUI/AboutDialog.hpp pchheader.hpp
${LIBDIR}/slic3r/GUI/SysInfoDialog.cpp GUI/AboutDialog.cpp
${LIBDIR}/slic3r/GUI/SysInfoDialog.hpp GUI/AboutDialog.hpp
${LIBDIR}/slic3r/GUI/AppConfig.cpp GUI/SysInfoDialog.cpp
${LIBDIR}/slic3r/GUI/AppConfig.hpp GUI/SysInfoDialog.hpp
${LIBDIR}/slic3r/GUI/BackgroundSlicingProcess.cpp GUI/AppConfig.cpp
${LIBDIR}/slic3r/GUI/BackgroundSlicingProcess.hpp GUI/AppConfig.hpp
${LIBDIR}/slic3r/GUI/BitmapCache.cpp GUI/BackgroundSlicingProcess.cpp
${LIBDIR}/slic3r/GUI/BitmapCache.hpp GUI/BackgroundSlicingProcess.hpp
${LIBDIR}/slic3r/GUI/ConfigSnapshotDialog.cpp GUI/BitmapCache.cpp
${LIBDIR}/slic3r/GUI/ConfigSnapshotDialog.hpp GUI/BitmapCache.hpp
${LIBDIR}/slic3r/GUI/3DScene.cpp GUI/ConfigSnapshotDialog.cpp
${LIBDIR}/slic3r/GUI/3DScene.hpp GUI/ConfigSnapshotDialog.hpp
${LIBDIR}/slic3r/GUI/GLShader.cpp GUI/3DScene.cpp
${LIBDIR}/slic3r/GUI/GLShader.hpp GUI/3DScene.hpp
${LIBDIR}/slic3r/GUI/GLCanvas3D.hpp GUI/GLShader.cpp
${LIBDIR}/slic3r/GUI/GLCanvas3D.cpp GUI/GLShader.hpp
${LIBDIR}/slic3r/GUI/GLCanvas3DManager.hpp GUI/GLCanvas3D.hpp
${LIBDIR}/slic3r/GUI/GLCanvas3DManager.cpp GUI/GLCanvas3D.cpp
${LIBDIR}/slic3r/GUI/GLGizmo.hpp GUI/GLCanvas3DManager.hpp
${LIBDIR}/slic3r/GUI/GLGizmo.cpp GUI/GLCanvas3DManager.cpp
${LIBDIR}/slic3r/GUI/GLTexture.hpp GUI/GLGizmo.hpp
${LIBDIR}/slic3r/GUI/GLTexture.cpp GUI/GLGizmo.cpp
${LIBDIR}/slic3r/GUI/GLToolbar.hpp GUI/GLTexture.hpp
${LIBDIR}/slic3r/GUI/GLToolbar.cpp GUI/GLTexture.cpp
${LIBDIR}/slic3r/GUI/Preferences.cpp GUI/GLToolbar.hpp
${LIBDIR}/slic3r/GUI/Preferences.hpp GUI/GLToolbar.cpp
${LIBDIR}/slic3r/GUI/Preset.cpp GUI/Preferences.cpp
${LIBDIR}/slic3r/GUI/Preset.hpp GUI/Preferences.hpp
${LIBDIR}/slic3r/GUI/PresetBundle.cpp GUI/Preset.cpp
${LIBDIR}/slic3r/GUI/PresetBundle.hpp GUI/Preset.hpp
${LIBDIR}/slic3r/GUI/PresetHints.cpp GUI/PresetBundle.cpp
${LIBDIR}/slic3r/GUI/PresetHints.hpp GUI/PresetBundle.hpp
${LIBDIR}/slic3r/GUI/GUI.cpp GUI/PresetHints.cpp
${LIBDIR}/slic3r/GUI/GUI.hpp GUI/PresetHints.hpp
${LIBDIR}/slic3r/GUI/GUI_Preview.cpp GUI/GUI.cpp
${LIBDIR}/slic3r/GUI/GUI_Preview.hpp GUI/GUI.hpp
${LIBDIR}/slic3r/GUI/GUI_PreviewIface.cpp GUI/GUI_Preview.cpp
${LIBDIR}/slic3r/GUI/GUI_PreviewIface.hpp GUI/GUI_Preview.hpp
${LIBDIR}/slic3r/GUI/GUI_App.cpp GUI/GUI_PreviewIface.cpp
${LIBDIR}/slic3r/GUI/GUI_App.hpp GUI/GUI_PreviewIface.hpp
${LIBDIR}/slic3r/GUI/GUI_Utils.cpp GUI/GUI_App.cpp
${LIBDIR}/slic3r/GUI/GUI_Utils.hpp GUI/GUI_App.hpp
${LIBDIR}/slic3r/GUI/MainFrame.cpp GUI/GUI_Utils.cpp
${LIBDIR}/slic3r/GUI/MainFrame.hpp GUI/GUI_Utils.hpp
${LIBDIR}/slic3r/GUI/Plater.cpp GUI/MainFrame.cpp
${LIBDIR}/slic3r/GUI/Plater.hpp GUI/MainFrame.hpp
${LIBDIR}/slic3r/GUI/GUI_ObjectList.cpp GUI/Plater.cpp
${LIBDIR}/slic3r/GUI/GUI_ObjectList.hpp GUI/Plater.hpp
${LIBDIR}/slic3r/GUI/GUI_ObjectManipulation.cpp GUI/GUI_ObjectList.cpp
${LIBDIR}/slic3r/GUI/GUI_ObjectManipulation.hpp GUI/GUI_ObjectList.hpp
${LIBDIR}/slic3r/GUI/LambdaObjectDialog.cpp GUI/GUI_ObjectManipulation.cpp
${LIBDIR}/slic3r/GUI/LambdaObjectDialog.hpp GUI/GUI_ObjectManipulation.hpp
${LIBDIR}/slic3r/GUI/Tab.cpp GUI/LambdaObjectDialog.cpp
${LIBDIR}/slic3r/GUI/Tab.hpp GUI/LambdaObjectDialog.hpp
${LIBDIR}/slic3r/GUI/TabIface.cpp GUI/Tab.cpp
${LIBDIR}/slic3r/GUI/TabIface.hpp GUI/Tab.hpp
${LIBDIR}/slic3r/GUI/Field.cpp GUI/TabIface.cpp
${LIBDIR}/slic3r/GUI/Field.hpp GUI/TabIface.hpp
${LIBDIR}/slic3r/GUI/OptionsGroup.cpp GUI/Field.cpp
${LIBDIR}/slic3r/GUI/OptionsGroup.hpp GUI/Field.hpp
${LIBDIR}/slic3r/GUI/BedShapeDialog.cpp GUI/OptionsGroup.cpp
${LIBDIR}/slic3r/GUI/BedShapeDialog.hpp GUI/OptionsGroup.hpp
${LIBDIR}/slic3r/GUI/2DBed.cpp GUI/BedShapeDialog.cpp
${LIBDIR}/slic3r/GUI/2DBed.hpp GUI/BedShapeDialog.hpp
${LIBDIR}/slic3r/GUI/wxExtensions.cpp GUI/2DBed.cpp
${LIBDIR}/slic3r/GUI/wxExtensions.hpp GUI/2DBed.hpp
${LIBDIR}/slic3r/GUI/WipeTowerDialog.cpp GUI/wxExtensions.cpp
${LIBDIR}/slic3r/GUI/WipeTowerDialog.hpp GUI/wxExtensions.hpp
${LIBDIR}/slic3r/GUI/RammingChart.cpp GUI/WipeTowerDialog.cpp
${LIBDIR}/slic3r/GUI/RammingChart.hpp GUI/WipeTowerDialog.hpp
${LIBDIR}/slic3r/GUI/BonjourDialog.cpp GUI/RammingChart.cpp
${LIBDIR}/slic3r/GUI/BonjourDialog.hpp GUI/RammingChart.hpp
${LIBDIR}/slic3r/GUI/ButtonsDescription.cpp GUI/BonjourDialog.cpp
${LIBDIR}/slic3r/GUI/ButtonsDescription.hpp GUI/BonjourDialog.hpp
${LIBDIR}/slic3r/Config/Snapshot.cpp GUI/ButtonsDescription.cpp
${LIBDIR}/slic3r/Config/Snapshot.hpp GUI/ButtonsDescription.hpp
${LIBDIR}/slic3r/Config/Version.cpp Config/Snapshot.cpp
${LIBDIR}/slic3r/Config/Version.hpp Config/Snapshot.hpp
${LIBDIR}/slic3r/Utils/ASCIIFolding.cpp Config/Version.cpp
${LIBDIR}/slic3r/Utils/ASCIIFolding.hpp Config/Version.hpp
${LIBDIR}/slic3r/Utils/Serial.cpp Utils/ASCIIFolding.cpp
${LIBDIR}/slic3r/Utils/Serial.hpp Utils/ASCIIFolding.hpp
${LIBDIR}/slic3r/GUI/ConfigWizard.cpp Utils/Serial.cpp
${LIBDIR}/slic3r/GUI/ConfigWizard.hpp Utils/Serial.hpp
${LIBDIR}/slic3r/GUI/MsgDialog.cpp GUI/ConfigWizard.cpp
${LIBDIR}/slic3r/GUI/MsgDialog.hpp GUI/ConfigWizard.hpp
${LIBDIR}/slic3r/GUI/UpdateDialogs.cpp GUI/MsgDialog.cpp
${LIBDIR}/slic3r/GUI/UpdateDialogs.hpp GUI/MsgDialog.hpp
${LIBDIR}/slic3r/GUI/FirmwareDialog.cpp GUI/UpdateDialogs.cpp
${LIBDIR}/slic3r/GUI/FirmwareDialog.hpp GUI/UpdateDialogs.hpp
${LIBDIR}/slic3r/GUI/ProgressIndicator.hpp GUI/FirmwareDialog.cpp
${LIBDIR}/slic3r/GUI/ProgressStatusBar.hpp GUI/FirmwareDialog.hpp
${LIBDIR}/slic3r/GUI/ProgressStatusBar.cpp GUI/ProgressIndicator.hpp
${LIBDIR}/slic3r/Utils/Http.cpp GUI/ProgressStatusBar.hpp
${LIBDIR}/slic3r/Utils/Http.hpp GUI/ProgressStatusBar.cpp
${LIBDIR}/slic3r/Utils/FixModelByWin10.cpp Utils/Http.cpp
${LIBDIR}/slic3r/Utils/FixModelByWin10.hpp Utils/Http.hpp
${LIBDIR}/slic3r/Utils/PrintHostSendDialog.cpp Utils/FixModelByWin10.cpp
${LIBDIR}/slic3r/Utils/PrintHostSendDialog.hpp Utils/FixModelByWin10.hpp
${LIBDIR}/slic3r/Utils/OctoPrint.cpp Utils/PrintHostSendDialog.cpp
${LIBDIR}/slic3r/Utils/OctoPrint.hpp Utils/PrintHostSendDialog.hpp
${LIBDIR}/slic3r/Utils/Duet.cpp Utils/OctoPrint.cpp
${LIBDIR}/slic3r/Utils/Duet.hpp Utils/OctoPrint.hpp
${LIBDIR}/slic3r/Utils/PrintHost.cpp Utils/Duet.cpp
${LIBDIR}/slic3r/Utils/PrintHost.hpp Utils/Duet.hpp
${LIBDIR}/slic3r/Utils/Bonjour.cpp Utils/PrintHost.cpp
${LIBDIR}/slic3r/Utils/Bonjour.hpp Utils/PrintHost.hpp
${LIBDIR}/slic3r/Utils/PresetUpdater.cpp Utils/Bonjour.cpp
${LIBDIR}/slic3r/Utils/PresetUpdater.hpp Utils/Bonjour.hpp
${LIBDIR}/slic3r/Utils/Time.cpp Utils/PresetUpdater.cpp
${LIBDIR}/slic3r/Utils/Time.hpp Utils/PresetUpdater.hpp
${LIBDIR}/slic3r/Utils/HexFile.cpp Utils/Time.cpp
${LIBDIR}/slic3r/Utils/HexFile.hpp Utils/Time.hpp
${LIBDIR}/slic3r/AppController.hpp Utils/HexFile.cpp
${LIBDIR}/slic3r/AppController.cpp Utils/HexFile.hpp
${LIBDIR}/slic3r/AppControllerWx.cpp AppController.hpp
AppController.cpp
AppControllerWx.cpp
) )
target_link_libraries(libslic3r_gui libslic3r avrdude) target_link_libraries(libslic3r_gui libslic3r avrdude)
add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE)

1
src/slic3r/pchheader.cpp Normal file
View File

@ -0,0 +1 @@
#include "pchheader.hpp"

180
src/slic3r/pchheader.hpp Normal file
View File

@ -0,0 +1,180 @@
#ifdef WIN32
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <Windows.h>
#endif
#include <float.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <algorithm>
#include <array>
#include <atomic>
#include <cassert>
#include <chrono>
#include <condition_variable>
#include <cstdarg>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <Eigen/Dense>
#include <exception>
#include <exception>
#include <fstream>
#include <functional>
#include <future>
#include <iostream>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <mutex>
#include <numeric>
#include <ostream>
#include <random>
#include <regex>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <string>
#include <thread>
#include <unordered_map>
#include <utility>
#include <vector>
#include <boost/algorithm/clamp.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/any.hpp>
#include <boost/asio.hpp>
#include <boost/asio/ip/address.hpp>
#include <boost/date_time/posix_time/posix_time_duration.hpp>
#include <boost/endian/conversion.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/format.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/locale.hpp>
#include <boost/locale/encoding_utf.hpp>
#include <boost/log/trivial.hpp>
#include <boost/nowide/cenv.hpp>
#include <boost/nowide/convert.hpp>
#include <boost/nowide/cstdio.hpp>
#include <boost/nowide/fstream.hpp>
#include <boost/optional.hpp>
#include <boost/property_tree/ini_parser.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ptree_fwd.hpp>
#include <boost/system/error_code.hpp>
#include <tbb/parallel_for.h>
#include <tbb/spin_mutex.h>
#include <wx/app.h>
#include <wx/bitmap.h>
#include <wx/bmpbuttn.h>
#include <wx/bmpcbox.h>
#include <wx/button.h>
#include <wx/checkbox.h>
#include <wx/checklst.h>
#include <wx/choice.h>
#include <wx/choicebk.h>
#include <wx/clipbrd.h>
#include <wx/clrpicker.h>
#include <wx/collpane.h>
#include <wx/colordlg.h>
#include <wx/colour.h>
#include <wx/combo.h>
#include <wx/combobox.h>
#include <wx/dataview.h>
#include <wx/dc.h>
#include <wx/dcbuffer.h>
#include <wx/dcclient.h>
#include <wx/dcmemory.h>
#include <wx/debug.h>
#include <wx/dialog.h>
#include <wx/dir.h>
#include <wx/display.h>
#include <wx/dnd.h>
#include <wx/event.h>
#include <wx/filedlg.h>
#include <wx/filefn.h>
#include <wx/filepicker.h>
#include <wx/font.h>
#include <wx/frame.h>
#include <wx/gauge.h>
#include <wx/gdicmn.h>
// #include <wx/glcanvas.h>
// #include <wx/html/htmlwin.h>
// #include <wx/hyperlink.h>
#include <wx/icon.h>
#include <wx/image.h>
#include <wx/imaglist.h>
#include <wx/imagpng.h>
#include <wx/intl.h>
#include <wx/intl.h>
#include <wx/listctrl.h>
#include <wx/menu.h>
#include <wx/menuitem.h>
#include <wx/msgdlg.h>
#include <wx/mstream.h>
#include <wx/notebook.h>
#include <wx/numdlg.h>
#include <wx/numformatter.h>
#include <wx/panel.h>
#include <wx/platinfo.h>
#include <wx/progdlg.h>
#include <wx/rawbmp.h>
#include <wx/scrolwin.h>
#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/slider.h>
#include <wx/spinctrl.h>
#include <wx/statbmp.h>
#include <wx/statbox.h>
#include <wx/statline.h>
#include <wx/stattext.h>
#include <wx/statusbr.h>
#include <wx/stdpaths.h>
#include <wx/stdstream.h>
#include <wx/string.h>
#include <wx/textctrl.h>
#include <wx/timer.h>
#include <wx/tooltip.h>
#include <wx/toplevel.h>
#include <wx/treectrl.h>
#include <wx/wfstream.h>
#include <wx/window.h>
#include <wx/wupdlock.h>
#include <wx/wx.h>
#include <wx/wx.h>
#include <wx/wxprec.h>
#include <wx/zipstrm.h>
#include "libslic3r/Config.hpp"
#include "libslic3r/PrintConfig.hpp"
#include "libslic3r/TriangleMesh.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/MultiPoint.hpp"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/Polyline.hpp"
#include "libslic3r/BoundingBox.hpp"
#include "libslic3r/ClipperUtils.hpp"
#include "libslic3r/libslic3r.h"