Merge branch 'vk-bugfixes'
This commit is contained in:
commit
b0ce4644b4
@ -191,6 +191,7 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
|
|||||||
add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
|
add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fsanitize=address")
|
||||||
|
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||||
|
2
deps/CMakeLists.txt
vendored
2
deps/CMakeLists.txt
vendored
@ -72,7 +72,7 @@ elseif (APPLE)
|
|||||||
message(FATAL_ERROR "Could not determine OS X SDK version. Please use -DCMAKE_OSX_DEPLOYMENT_TARGET=<version>")
|
message(FATAL_ERROR "Could not determine OS X SDK version. Please use -DCMAKE_OSX_DEPLOYMENT_TARGET=<version>")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
message("OS X Deployment Target (inferred from default): ${DEP_OSX_TARGET}")
|
message("OS X Deployment Target (inferred from SDK): ${DEP_OSX_TARGET}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include("deps-macos.cmake")
|
include("deps-macos.cmake")
|
||||||
|
19
deps/deps-macos.cmake
vendored
19
deps/deps-macos.cmake
vendored
@ -6,7 +6,7 @@ set(DEP_WERRORS_SDK "-Werror=partial-availability -Werror=unguarded-availability
|
|||||||
set(DEP_CMAKE_OPTS
|
set(DEP_CMAKE_OPTS
|
||||||
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
|
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
|
||||||
"-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}"
|
"-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}"
|
||||||
"-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
"-DCMAKE_OSX_DEPLOYMENT_TARGET=${DEP_OSX_TARGET}"
|
||||||
"-DCMAKE_CXX_FLAGS=${DEP_WERRORS_SDK}"
|
"-DCMAKE_CXX_FLAGS=${DEP_WERRORS_SDK}"
|
||||||
"-DCMAKE_C_FLAGS=${DEP_WERRORS_SDK}"
|
"-DCMAKE_C_FLAGS=${DEP_WERRORS_SDK}"
|
||||||
)
|
)
|
||||||
@ -14,28 +14,27 @@ set(DEP_CMAKE_OPTS
|
|||||||
include("deps-unix-common.cmake")
|
include("deps-unix-common.cmake")
|
||||||
|
|
||||||
|
|
||||||
set(DEP_BOOST_OSX_TARGET "")
|
|
||||||
if (CMAKE_OSX_DEPLOYMENT_TARGET)
|
|
||||||
set(DEP_BOOST_OSX_TARGET "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
ExternalProject_Add(dep_boost
|
ExternalProject_Add(dep_boost
|
||||||
EXCLUDE_FROM_ALL 1
|
EXCLUDE_FROM_ALL 1
|
||||||
URL "https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz"
|
URL "https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz"
|
||||||
URL_HASH SHA256=bd0df411efd9a585e5a2212275f8762079fed8842264954675a4fddc46cfcf60
|
URL_HASH SHA256=96b34f7468f26a141f6020efb813f1a2f3dfb9797ecf76a7d7cbd843cc95f5bd
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
CONFIGURE_COMMAND ./bootstrap.sh
|
CONFIGURE_COMMAND ./bootstrap.sh
|
||||||
|
--with-toolset=clang
|
||||||
--with-libraries=system,iostreams,filesystem,thread,log,locale,regex
|
--with-libraries=system,iostreams,filesystem,thread,log,locale,regex
|
||||||
"--prefix=${DESTDIR}/usr/local"
|
"--prefix=${DESTDIR}/usr/local"
|
||||||
BUILD_COMMAND ./b2
|
BUILD_COMMAND ./b2
|
||||||
-j ${NPROC}
|
-j ${NPROC}
|
||||||
--reconfigure
|
--reconfigure
|
||||||
|
toolset=clang
|
||||||
link=static
|
link=static
|
||||||
variant=release
|
variant=release
|
||||||
threading=multi
|
threading=multi
|
||||||
boost.locale.icu=off
|
boost.locale.icu=off
|
||||||
"cflags=-fPIC ${DEP_BOOST_OSX_TARGET}"
|
"cflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
|
||||||
"cxxflags=-fPIC ${DEP_BOOST_OSX_TARGET}"
|
"cxxflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
|
||||||
|
"mflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
|
||||||
|
"mmflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
|
||||||
install
|
install
|
||||||
INSTALL_COMMAND "" # b2 does that already
|
INSTALL_COMMAND "" # b2 does that already
|
||||||
)
|
)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Building PrusaSlicer on UNIX/Linux
|
# Building PrusaSlicer on UNIX/Linux
|
||||||
|
|
||||||
PrusaSlicer uses the CMake build system and requires several dependencies.
|
PrusaSlicer uses the CMake build system and requires several dependencies.
|
||||||
The dependencies can be listed in `deps/deps-linux.cmake`, although they don't necessarily need to be as recent
|
The dependencies can be listed in `deps/deps-linux.cmake` and `deps/deps-unix-common.cmake`, although they don't necessarily need to be as recent
|
||||||
as the versions listed - generally versions available on conservative Linux distros such as Debian stable or CentOS should suffice.
|
as the versions listed - generally versions available on conservative Linux distros such as Debian stable or CentOS should suffice.
|
||||||
|
|
||||||
Perl is not required any more.
|
Perl is not required any more.
|
||||||
|
@ -424,14 +424,19 @@ int copy_file(const std::string &from, const std::string &to)
|
|||||||
static const auto perms = boost::filesystem::owner_read | boost::filesystem::owner_write | boost::filesystem::group_read | boost::filesystem::others_read; // aka 644
|
static const auto perms = boost::filesystem::owner_read | boost::filesystem::owner_write | boost::filesystem::group_read | boost::filesystem::others_read; // aka 644
|
||||||
|
|
||||||
// Make sure the file has correct permission both before and after we copy over it.
|
// Make sure the file has correct permission both before and after we copy over it.
|
||||||
try {
|
// NOTE: error_code variants are used here to supress expception throwing.
|
||||||
if (boost::filesystem::exists(target))
|
// Error code of permission() calls is ignored on purpose - if they fail,
|
||||||
boost::filesystem::permissions(target, perms);
|
// the copy_file() function will fail appropriately and we don't want the permission()
|
||||||
boost::filesystem::copy_file(source, target, boost::filesystem::copy_option::overwrite_if_exists);
|
// calls to cause needless failures on permissionless filesystems (ie. FATs on SD cards etc.)
|
||||||
boost::filesystem::permissions(target, perms);
|
// or when the target file doesn't exist.
|
||||||
} catch (std::exception & /* ex */) {
|
boost::system::error_code ec;
|
||||||
|
boost::filesystem::permissions(target, perms, ec);
|
||||||
|
boost::filesystem::copy_file(source, target, boost::filesystem::copy_option::overwrite_if_exists, ec);
|
||||||
|
if (ec) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
boost::filesystem::permissions(target, perms, ec);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user