Skip to content

Commit

Permalink
More fixes for make install and ITK C++ example
Browse files Browse the repository at this point in the history
  • Loading branch information
akenmorris committed Oct 9, 2022
1 parent 115c203 commit 59dc213
Show file tree
Hide file tree
Showing 22 changed files with 83 additions and 61 deletions.
33 changes: 18 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ endif()

set(CMAKE_CXX_STANDARD 17) # available options are [98, 11, 14, 17. 20]

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
find_package(Python3 3.9 EXACT REQUIRED COMPONENTS Interpreter Development)

if (NOT APPLE)
Expand Down Expand Up @@ -123,11 +123,11 @@ if (SHAPEWORKS_GUI)
endif()

### vtk
find_package(VTK 8.2.0)
find_package(VTK 9.1.0)
if (NOT VTK_FOUND)
message(FATAL_ERROR "VTK is required, but could not be found! Make sure path to VTKConfig.cmake is included in CMAKE_PREFIX_PATH")
endif()
include(${VTK_USE_FILE})
#include(${VTK_USE_FILE})

### Eigen
find_package (Eigen3 3.3 REQUIRED NO_MODULE)
Expand Down Expand Up @@ -170,10 +170,16 @@ if(USE_OPENMP)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -fPIC")
endif(USE_OPENMP)

SET(CMAKE_INSTALL_LIBDIR lib)

if(APPLE)
set(CMAKE_INSTALL_RPATH "@executable_path/../lib")
else()
set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")
# set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
endif()

include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
Expand Down Expand Up @@ -254,13 +260,12 @@ message(STATUS "CMAKE_SHARED_LINKER_FLAGS: ${CMAKE_SHARED_LINKER_FLAGS}")

set(SHAPEWORKS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(SHAPEWORKS_LIBS Project)
set(SHAPEWORKS_CMAKE_CFG_DEST_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
CACHE PATH "Default location to install CMake config files")
set(SHAPEWORKS_CMAKE_CFG_DEST_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})

install(TARGETS igl igl_common EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include
)

Expand All @@ -271,7 +276,7 @@ install(EXPORT ShapeWorksTargets

include(CMakePackageConfigHelpers)

configure_package_config_file(CMake/ShapeWorksConfig.cmake.in
configure_package_config_file(cmake/ShapeWorksConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/ShapeWorksConfig.cmake
INSTALL_DESTINATION ${SHAPEWORKS_CMAKE_CFG_DEST_DIR}
PATH_VARS SHAPEWORKS_INCLUDE_DIR)
Expand All @@ -283,9 +288,7 @@ write_basic_package_version_file(ShapeWorksConfigVersion.cmake
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/ShapeWorksConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/ShapeWorksConfigVersion.cmake
${CMAKE_CURRENT_SOURCE_DIR}/CMake/FindXLNT.cmake
${CMAKE_CURRENT_SOURCE_DIR}/CMake/FindLIBIGL.cmake
${CMAKE_CURRENT_SOURCE_DIR}/CMake/FindACVD.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindXLNT.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLIBIGL.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindACVD.cmake
DESTINATION ${SHAPEWORKS_CMAKE_CFG_DEST_DIR})


6 changes: 4 additions & 2 deletions Examples/C++/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ set(CMAKE_CXX_STANDARD 17)
# Find ShapeWorks
find_package(ShapeWorks REQUIRED)

SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--disable-new-dtags")

# Find ITK
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
#find_package(ITK REQUIRED)
#include(${ITK_USE_FILE})

add_executable(HelloShapeWorksItk HelloShapeWorksItk.cpp)

Expand Down
8 changes: 7 additions & 1 deletion Examples/C++/HelloShapeWorksItk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
#include "itkMesh.h"
#include "itkRegularSphereMeshSource.h"
#include "itkMeshFileWriter.h"
#include "itkMeshIOFactory.h"
#include "itkVTKPolyDataMeshIOFactory.h"

// shapeworks includes
#include <Project/Project.h>
Expand Down Expand Up @@ -44,6 +46,10 @@ void create_sphere(double radius, std::string name) {
}

int main() {

itk::VTKPolyDataMeshIOFactory::RegisterOneFactory();
// auto registeredIOs = itk::ObjectFactoryBase::CreateAllInstance( "itkMeshIOBase" );

typedef itk::Image< unsigned short, 3 > ImageType;
ImageType::Pointer image = ImageType::New();

Expand All @@ -54,7 +60,7 @@ int main() {

std::cout << "Step 1: Use ITK to generate input data\n";
for (int i=5;i<9;i++) {
auto filename = "mesh" + std::to_string(5) + ".vtk";
auto filename = "mesh" + std::to_string(i) + ".vtk";
std::cout << "Creating input file: " << filename << "\n";
create_sphere(i, filename);
auto subject = std::make_shared<shapeworks::Subject>();
Expand Down
6 changes: 3 additions & 3 deletions ExternalLibs/tinyxml/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ else(TARGET tinyxml)
endif(TARGET tinyxml)

install(TARGETS tinyxml EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include
)
6 changes: 3 additions & 3 deletions ExternalLibs/trimesh2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ if (UNIX)
endif()

install(TARGETS trimesh2 EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include
)
6 changes: 3 additions & 3 deletions Libs/Alignment/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ target_link_libraries(Alignment PUBLIC
)

install(TARGETS Alignment EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include
)
6 changes: 3 additions & 3 deletions Libs/Analyze/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ set_target_properties(Analyze PROPERTIES PUBLIC_HEADER
"${Analyze_headers}")

install(TARGETS Analyze EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/Analyze
)
6 changes: 3 additions & 3 deletions Libs/Common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ target_link_libraries(Common
set_target_properties(Common PROPERTIES PUBLIC_HEADER
"${Common_headers}")
install(TARGETS Common EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include
)
6 changes: 3 additions & 3 deletions Libs/Groom/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ target_include_directories(Groom PUBLIC
)

install(TARGETS Groom EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/Groom
)
6 changes: 3 additions & 3 deletions Libs/Image/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ set_target_properties(Image PROPERTIES PUBLIC_HEADER
"${Image_headers}"
)
install(TARGETS Image EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/Image
)
6 changes: 3 additions & 3 deletions Libs/Mesh/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ set_target_properties(Mesh PROPERTIES PUBLIC_HEADER
)

install(TARGETS Mesh EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/Mesh
)

Expand Down
6 changes: 3 additions & 3 deletions Libs/Optimize/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ target_include_directories(Optimize PUBLIC
set_target_properties(Optimize PROPERTIES PUBLIC_HEADER "${Optimize_headers}")

install(TARGETS Optimize EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/Optimize
)
6 changes: 3 additions & 3 deletions Libs/Particles/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ set_target_properties(Particles PROPERTIES PUBLIC_HEADER
)

install(TARGETS Particles EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include
)
6 changes: 3 additions & 3 deletions Libs/Project/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ set_target_properties(Project PROPERTIES PUBLIC_HEADER
"${HEADERS}")

install(TARGETS Project EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/Project
)
6 changes: 3 additions & 3 deletions Libs/Utils/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ set_target_properties(Utils PROPERTIES PUBLIC_HEADER
)

install(TARGETS Utils EXPORT ShapeWorksTargets
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/Utils
)
6 changes: 3 additions & 3 deletions Testing/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ target_link_libraries(Testing
set_target_properties(Testing PROPERTIES PUBLIC_HEADER
"${Testing_headers}")
install(TARGETS Testing
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
LIBRARY DESTINATION lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include
)

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,21 @@ add_definitions(-DXLNT_STATIC=1)
### ACVD
find_dependency (ACVD REQUIRED)

### Json library
find_dependency(nlohmann_json 3.10.5 REQUIRED)

find_dependency (ITK)

#find_dependency (Eigen 3.3 REQUIRED NO_MODULE)

find_dependency (VTK)
### Libigl set include path
#find_dependency(LIBIGL REQUIRED QUIET)

### Boost
find_dependency(Boost REQUIRED COMPONENTS
filesystem)

### Json library
find_dependency(nlohmann_json 3.10.5 REQUIRED)

### spdlog library
find_dependency(spdlog 1.10.0 REQUIRED)
Expand All @@ -46,8 +52,13 @@ find_dependency(pybind11 2.5.0 REQUIRED)

check_required_components(shapeworks)

#include_directories(${SHAPEWORKS_INCLUDE_DIR})
if(@USE_OPENMP@)
find_dependency(OpenMP)
add_definitions(-DSW_USE_OPENMP)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -fPIC")
endif()

if(NOT TARGET shapeworks::shapeworks)
include("${SHAPEWORKS_CMAKE_DIR}/ShapeworksTargets.cmake")
include("${SHAPEWORKS_CMAKE_DIR}/ShapeWorksTargets.cmake")
endif()

0 comments on commit 59dc213

Please sign in to comment.