Skip to content

Commit

Permalink
Merge branch 'missing-build-byproducts' into msvc_ninja
Browse files Browse the repository at this point in the history
  • Loading branch information
dbs4261 committed Sep 17, 2024
2 parents 0f4dcfa + 0f7e43d commit 1cc3e3f
Show file tree
Hide file tree
Showing 8 changed files with 64 additions and 33 deletions.
4 changes: 3 additions & 1 deletion 3rdparty/boringssl/boringssl.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ ExternalProject_Add(
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
BUILD_BYPRODUCTS ""
BUILD_BYPRODUCTS
<SOURCE_DIR>/$<$<BOOL:${WIN32}>:$<IF:$<CONFIG:Debug>,Debug,Release>/>lib/${CMAKE_STATIC_LIBRARY_PREFIX}ssl${CMAKE_STATIC_LIBRARY_SUFFIX}
<SOURCE_DIR>/$<$<BOOL:${WIN32}>:$<IF:$<CONFIG:Debug>,Debug,Release>/>lib/${CMAKE_STATIC_LIBRARY_PREFIX}crypto${CMAKE_STATIC_LIBRARY_SUFFIX}
)

ExternalProject_Get_Property(ext_boringssl SOURCE_DIR)
Expand Down
4 changes: 3 additions & 1 deletion 3rdparty/curl/curl.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,9 @@ else()
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
BUILD_BYPRODUCTS ""
BUILD_BYPRODUCTS
<SOURCE_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${curl_lib_name}${CMAKE_STATIC_LIBRARY_SUFFIX}
<SOURCE_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${curl_lib_name}-d${CMAKE_STATIC_LIBRARY_SUFFIX}
)

ExternalProject_Get_Property(ext_curl SOURCE_DIR)
Expand Down
28 changes: 18 additions & 10 deletions 3rdparty/ipp/ipp.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,20 @@ else()
set(IPP_SUBPATH "")
endif()

# Threading layer libs must be linked first.
# https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-11/ipp-performace-benefits-with-tl-functions.html
# Library dependency order:
# https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-11/library-dependencies-by-domain.html
if (WIN32)
set(IPP_LIBRARIES ipp_iw ippcvmt_tl_tbb ippcvmt ippimt_tl_tbb ippimt ippccmt_tl_tbb ippccmt ippsmt ippvmmt ippcoremt_tl_tbb ippcoremt)
else()
set(IPP_LIBRARIES ipp_iw ippcv_tl_tbb ippcv ippi_tl_tbb ippi ippcc_tl_tbb ippcc ipps ippvm ippcore_tl_tbb ippcore)
endif()

foreach(item IN LISTS IPP_LIBRARIES)
list(APPEND IPP_BUILD_BYPRODUCTS <SOURCE_DIR>/${IPP_SUBPATH}lib/${CMAKE_STATIC_LIBRARY_PREFIX}${item}${CMAKE_STATIC_LIBRARY_SUFFIX})
endforeach()

ExternalProject_Add(ext_ipp
PREFIX ipp
URL ${IPP_URL}
Expand All @@ -45,16 +59,10 @@ ExternalProject_Add(ext_ipp
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
BUILD_BYPRODUCTS
${IPP_BUILD_BYPRODUCTS}
)

ExternalProject_Get_Property(ext_ipp SOURCE_DIR)
set(IPP_INCLUDE_DIR "${SOURCE_DIR}/${IPP_SUBPATH}include/")
# Threading layer libs must be linked first.
# https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-11/ipp-performace-benefits-with-tl-functions.html
# Library dependency order:
# https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-11/library-dependencies-by-domain.html
if (WIN32)
set(IPP_LIBRARIES ipp_iw ippcvmt_tl_tbb ippcvmt ippimt_tl_tbb ippimt ippccmt_tl_tbb ippccmt ippsmt ippvmmt ippcoremt_tl_tbb ippcoremt)
else()
set(IPP_LIBRARIES ipp_iw ippcv_tl_tbb ippcv ippi_tl_tbb ippi ippcc_tl_tbb ippcc ipps ippvm ippcore_tl_tbb ippcore)
endif()
set(IPP_LIB_DIR "${SOURCE_DIR}/${IPP_SUBPATH}lib")
2 changes: 1 addition & 1 deletion 3rdparty/uvatlas/uvatlas.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ ExternalProject_Add(
-Ddirectxmath_DIR=<INSTALL_DIR>
DEPENDS ext_directxheaders ext_directxmath
BUILD_BYPRODUCTS
<INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}uvatlas${CMAKE_STATIC_LIBRARY_SUFFIX}
<INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}UVAtlas${CMAKE_STATIC_LIBRARY_SUFFIX}
)


Expand Down
15 changes: 10 additions & 5 deletions 3rdparty/vtk/vtk_build.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ set(VTK_LIBRARIES
vtksys-${VTK_VERSION}${VTK_LIB_SUFFIX}
)

foreach(item IN LISTS VTK_LIBRARIES)
list(APPEND VTK_BUILD_BYPRODUCTS <INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${item}${CMAKE_STATIC_LIBRARY_SUFFIX})
endforeach()


if(BUILD_VTK_FROM_SOURCE)

foreach(item IN LISTS VTK_LIBRARIES)
list(APPEND VTK_BUILD_BYPRODUCTS <INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${item}${CMAKE_STATIC_LIBRARY_SUFFIX})
endforeach()

ExternalProject_Add(
ext_vtk
PREFIX vtk
Expand Down Expand Up @@ -294,6 +294,10 @@ if(BUILD_VTK_FROM_SOURCE)

else() #### download prebuilt vtk

foreach(item IN LISTS VTK_LIBRARIES)
list(APPEND VTK_BUILD_BYPRODUCTS <SOURCE_DIR>/lib/${item}${CMAKE_STATIC_LIBRARY_SUFFIX})
endforeach()

if(LINUX_AARCH64)
message(FATAL "No precompiled vtk for platform. Enable BUILD_VTK_FROM_SOURCE")
elseif(APPLE_AARCH64)
Expand Down Expand Up @@ -334,7 +338,8 @@ else() #### download prebuilt vtk
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
BUILD_BYPRODUCTS ""
BUILD_BYPRODUCTS
${VTK_BUILD_BYPRODUCTS}
)

ExternalProject_Get_Property(ext_vtk SOURCE_DIR)
Expand Down
1 change: 1 addition & 0 deletions cpp/open3d/io/TriangleMeshIO.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ struct ReadTriangleMeshOptions {
/// `aiProcessPreset_TargetRealtime_Fast,
/// aiProcess_RemoveRedundantMaterials, aiProcess_OptimizeMeshes,
/// aiProcess_PreTransformVertices`.
/// https://github.com/assimp/assimp/blob/master/include/assimp/postprocess.h
///
/// Note that identical vertices will always be joined regardless of whether
/// post-processing is enabled or not, which changes the number of vertices
Expand Down
24 changes: 16 additions & 8 deletions cpp/open3d/io/file_format/FileASSIMP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,16 @@ FileGeometry ReadFileGeometryTypeFBX(const std::string& path) {
return FileGeometry(CONTAINS_TRIANGLES | CONTAINS_POINTS);
}

// Ref:
// https://github.com/assimp/assimp/blob/master/include/assimp/postprocess.h
const unsigned int kPostProcessFlags_compulsory =
aiProcess_JoinIdenticalVertices;
aiProcess_JoinIdenticalVertices | aiProcess_SortByPType |
aiProcess_PreTransformVertices;

const unsigned int kPostProcessFlags_fast =
aiProcessPreset_TargetRealtime_Fast |
aiProcess_RemoveRedundantMaterials | aiProcess_OptimizeMeshes |
aiProcess_PreTransformVertices;
kPostProcessFlags_compulsory | aiProcess_GenNormals |
aiProcess_Triangulate | aiProcess_GenUVCoords |
aiProcess_RemoveRedundantMaterials | aiProcess_OptimizeMeshes;

struct TextureImages {
std::shared_ptr<geometry::Image> albedo;
Expand All @@ -65,7 +68,7 @@ void LoadTextures(const std::string& filename,
std::string base_path =
utility::filesystem::GetFileParentDirectory(filename);

auto texture_loader = [&base_path, &scene, &mat](
auto texture_loader = [&base_path, &scene, &mat, &filename](
aiTextureType type,
std::shared_ptr<geometry::Image>& img) {
if (mat->GetTextureCount(type) > 0) {
Expand Down Expand Up @@ -94,7 +97,10 @@ void LoadTextures(const std::string& filename,
}
} else {
utility::LogWarning(
"This format of image is not supported.");
"Unsupported texture format for texture {} for "
"file {}: Only jpg and "
"png textures are supported.",
path.C_Str(), filename);
}
}
// Else, build the path to it.
Expand Down Expand Up @@ -170,7 +176,8 @@ bool ReadTriangleMeshUsingASSIMP(

const auto* scene = importer.ReadFile(filename.c_str(), post_process_flags);
if (!scene) {
utility::LogWarning("Unable to load file {} with ASSIMP", filename);
utility::LogWarning("Unable to load file {} with ASSIMP: {}", filename,
importer.GetErrorString());
return false;
}

Expand Down Expand Up @@ -326,7 +333,8 @@ bool ReadModelUsingAssimp(const std::string& filename,
const auto* scene =
importer.ReadFile(filename.c_str(), kPostProcessFlags_fast);
if (!scene) {
utility::LogWarning("Unable to load file {} with ASSIMP", filename);
utility::LogWarning("Unable to load file {} with ASSIMP: {}", filename,
importer.GetErrorString());
return false;
}

Expand Down
19 changes: 12 additions & 7 deletions cpp/open3d/t/io/file_format/FileASSIMP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,16 @@ namespace t {
namespace io {

// Split all polygons with more than 3 edges into triangles.
// Ref:
// https://github.com/assimp/assimp/blob/master/include/assimp/postprocess.h
const unsigned int kPostProcessFlags_compulsory =
aiProcess_JoinIdenticalVertices | aiProcess_Triangulate |
aiProcess_SortByPType;
aiProcess_SortByPType | aiProcess_PreTransformVertices;

const unsigned int kPostProcessFlags_fast =
aiProcessPreset_TargetRealtime_Fast |
aiProcess_RemoveRedundantMaterials | aiProcess_OptimizeMeshes |
aiProcess_PreTransformVertices;
kPostProcessFlags_compulsory | aiProcess_GenNormals |
aiProcess_GenUVCoords | aiProcess_RemoveRedundantMaterials |
aiProcess_OptimizeMeshes;

bool ReadTriangleMeshUsingASSIMP(
const std::string& filename,
Expand All @@ -58,7 +60,8 @@ bool ReadTriangleMeshUsingASSIMP(

const auto* scene = importer.ReadFile(filename.c_str(), post_process_flags);
if (!scene) {
utility::LogWarning("Unable to load file {} with ASSIMP", filename);
utility::LogWarning("Unable to load file {} with ASSIMP: {}", filename,
importer.GetErrorString());
return false;
}

Expand Down Expand Up @@ -219,7 +222,7 @@ bool WriteTriangleMeshUsingASSIMP(const std::string& filename,
// Sanity checks...
if (write_ascii) {
utility::LogWarning(
"TriangleMesh can't be saved in ASCII fromat as .glb");
"TriangleMesh can't be saved in ASCII format as .glb");
return false;
}
if (compressed) {
Expand Down Expand Up @@ -470,7 +473,9 @@ bool WriteTriangleMeshUsingASSIMP(const std::string& filename,
// Export
if (exporter.Export(ai_scene.get(), "glb2", filename.c_str()) ==
AI_FAILURE) {
utility::LogWarning("Got error: {}", exporter.GetErrorString());
utility::LogWarning(
"Got error: ({}) while writing TriangleMesh to file {}.",
exporter.GetErrorString(), filename);
return false;
}

Expand Down

0 comments on commit 1cc3e3f

Please sign in to comment.