vcpkg/ports/geogram/fix-cmake-config-and-install.patch

211 lines
6.2 KiB
Diff
Raw Normal View History

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 17dc02e..e489d75 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,7 +42,7 @@ set(VORPALINE_VERSION_MINOR 6)
set(VORPALINE_VERSION_PATCH 9)
set(VORPALINE_VERSION ${VORPALINE_VERSION_MAJOR}.${VORPALINE_VERSION_MINOR}.${VORPALINE_VERSION_PATCH})
-set(VORPALINE_INCLUDE_SUBPATH geogram${VORPALINE_VERSION_MAJOR})
+set(VORPALINE_INCLUDE_SUBPATH ./)
# Determine the current Build-OS (Build-platform without the compiler info)
string(REGEX REPLACE "-[^-]+$" "" VORPALINE_OS ${VORPALINE_PLATFORM})
@@ -106,6 +106,11 @@ if(GEOGRAM_WITH_VORPALINE)
add_subdirectory(src/lib/vorpalib)
endif()
+# find this library in the outside scope
+if(GEOGRAM_WITH_GRAPHICS)
+ find_package(GLFW3 REQUIRED)
+endif(GEOGRAM_WITH_GRAPHICS)
+
add_subdirectory(src/lib/third_party)
if(GEOGRAM_WITH_GRAPHICS)
@@ -138,8 +143,44 @@ file(REMOVE ${CMAKE_BINARY_DIR}/doc/LICENSE.txt)
# FindGeogram.cmake
+# This installation is not suitable for vcpkg
+# install(FILES cmake/FindGeogram.cmake DESTINATION lib/cmake/modules COMPONENT devkit)
+
+set(config_install_dir "share/geogram")
+set(include_install_dir "include")
+set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
+
+# Configuration
+set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
+set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
+set(targets_export_name "${PROJECT_NAME}Targets")
+set(namespace "${PROJECT_NAME}::")
+
+# Include module with fuction 'write_basic_package_version_file'
+include(CMakePackageConfigHelpers)
+
+write_basic_package_version_file(
+ "${version_config}" COMPATIBILITY SameMajorVersion VERSION ${VORPALINE_VERSION}
+)
+
+configure_package_config_file(
+ "cmake/Config.cmake.in"
+ "${project_config}"
+ INSTALL_DESTINATION "${config_install_dir}"
+)
-install(FILES cmake/FindGeogram.cmake DESTINATION lib/cmake/modules COMPONENT devkit)
+# Config
+install(
+ FILES "${project_config}" "${version_config}"
+ DESTINATION "${config_install_dir}"
+)
+
+# Config
+install(
+ EXPORT "${targets_export_name}"
+ NAMESPACE "${namespace}"
+ DESTINATION "${config_install_dir}"
+)
# Configure CPack
diff --git a/src/lib/geogram/CMakeLists.txt b/src/lib/geogram/CMakeLists.txt
index d90bc48..927f857 100644
--- a/src/lib/geogram/CMakeLists.txt
+++ b/src/lib/geogram/CMakeLists.txt
@@ -47,7 +47,14 @@ if(WIN32)
endif()
# Install the library
-install_devkit_targets(geogram)
+install(
+ TARGETS geogram
+ EXPORT "${PROJECT_NAME}Targets"
+ LIBRARY DESTINATION "lib"
+ ARCHIVE DESTINATION "lib"
+ RUNTIME DESTINATION "bin"
+ INCLUDES DESTINATION "include"
+)
# Install include files for the standard devkit
install(
diff --git a/src/lib/geogram_gfx/CMakeLists.txt b/src/lib/geogram_gfx/CMakeLists.txt
index f319b93..e24039d 100644
--- a/src/lib/geogram_gfx/CMakeLists.txt
+++ b/src/lib/geogram_gfx/CMakeLists.txt
@@ -33,14 +33,21 @@ if(VORPALINE_BUILD_DYNAMIC)
endif()
# Install the library
-install_devkit_targets(geogram_gfx)
+install(
+ TARGETS geogram_gfx
+ EXPORT "${PROJECT_NAME}Targets"
+ LIBRARY DESTINATION "lib"
+ ARCHIVE DESTINATION "lib"
+ RUNTIME DESTINATION "bin"
+ INCLUDES DESTINATION "include"
+)
# Install include files for the standard devkit
install(
DIRECTORY .
DESTINATION include/${VORPALINE_INCLUDE_SUBPATH}/geogram_gfx
COMPONENT devkit
- FILES_MATCHING PATTERN *.h
+ FILES_MATCHING PATTERN *.h PATTERN *.xpm # xpm is the colrbar file
)
# Install include files for the full devkit
@@ -48,7 +55,7 @@ install(
DIRECTORY .
DESTINATION include/${VORPALINE_INCLUDE_SUBPATH}/geogram_gfx
COMPONENT devkit-full
- FILES_MATCHING PATTERN *.h
+ FILES_MATCHING PATTERN *.h PATTERN *.xpm # xpm is the colrbar file
)
install(
diff --git a/src/lib/third_party/numerics/CMakeLists.txt b/src/lib/third_party/numerics/CMakeLists.txt
index 5789cd2..e4262e3 100644
--- a/src/lib/third_party/numerics/CMakeLists.txt
+++ b/src/lib/third_party/numerics/CMakeLists.txt
@@ -10,16 +10,19 @@ endif()
include_directories(${GEOGRAM_SOURCE_DIR}/src/lib/third_party/numerics/INCLUDE)
2017-07-27 15:42:25 +08:00
+set(LAPACK_lapack_WORKS TRUE)
+find_package(BLAS REQUIRED)
+find_package(LAPACK REQUIRED)
aux_source_directories(SOURCES "Source Files" .)
aux_source_directories(SOURCES "Source Files\\LIBF2C" LIBF2C)
-aux_source_directories(SOURCES "Source Files\\CBLAS" CBLAS)
-aux_source_directories(SOURCES "Source Files\\CLAPACK" CLAPACK)
+# aux_source_directories(SOURCES "Source Files\\CBLAS" CBLAS)
+# aux_source_directories(SOURCES "Source Files\\CLAPACK" CLAPACK)
aux_source_directories(SOURCES "Source Files\\SUPERLU" SUPERLU)
aux_source_directories(SOURCES "Source Files\\ARPACK" ARPACK)
aux_source_directories(SOURCES "Source Files\\ARPACK_UTIL" ARPACK_UTIL)
add_library(geogram_num_3rdparty ${SOURCES})
-
+target_link_libraries(geogram_num_3rdparty ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
if(UNIX)
target_link_libraries(geogram_num_3rdparty m)
endif()
diff --git a/src/lib/third_party/numerics/LIBF2C/getarg_.c b/src/lib/third_party/numerics/LIBF2C/getarg_.c
index 2b69a1e..a504538 100644
--- a/src/lib/third_party/numerics/LIBF2C/getarg_.c
+++ b/src/lib/third_party/numerics/LIBF2C/getarg_.c
@@ -17,20 +17,20 @@ VOID getarg_(n, s, ls) ftnint *n; char *s; ftnlen ls;
void getarg_(ftnint *n, char *s, ftnlen ls)
#endif
{
- extern int xargc;
- extern char **xargv;
- Const char *t;
- int i;
-
- if(*n>=0 && *n<xargc)
- t = xargv[*n];
- else
- t = "";
- for(i = 0; i<ls && *t!='\0' ; ++i)
- *s++ = *t++;
- for( ; i<ls ; ++i)
- *s++ = ' ';
- }
+ // extern int xargc;
+ // extern char **xargv;
+ // Const char *t;
+ // int i;
+ //
+ // if(*n>=0 && *n<xargc)
+ // t = xargv[*n];
+ // else
+ // t = "";
+ // for(i = 0; i<ls && *t!='\0' ; ++i)
+ // *s++ = *t++;
+ // for( ; i<ls ; ++i)
+ // *s++ = ' ';
+}
#ifdef __cplusplus
}
#endif
diff --git a/src/lib/third_party/numerics/LIBF2C/iargc_.c b/src/lib/third_party/numerics/LIBF2C/iargc_.c
index 2f29da0..50b00de 100644
--- a/src/lib/third_party/numerics/LIBF2C/iargc_.c
+++ b/src/lib/third_party/numerics/LIBF2C/iargc_.c
@@ -9,8 +9,9 @@ ftnint iargc_()
ftnint iargc_(void)
#endif
{
-extern int xargc;
-return ( xargc - 1 );
+// extern int xargc;
+// return ( xargc - 1 );
+return -1;
}
#ifdef __cplusplus
}