Skip to content

Commit 6897bfe

Browse files
committed
install meta
1 parent 44630ca commit 6897bfe

File tree

5 files changed

+74
-9
lines changed

5 files changed

+74
-9
lines changed

CMakeLists.txt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
cmake_minimum_required(VERSION 3.14...3.28)
2-
project(GKlib LANGUAGES C)
2+
3+
project(GKlib LANGUAGES C
4+
VERSION 1.0.0
5+
)
6+
37
enable_testing()
48

59
option(BUILD_TESTING "Build tests" ON)
610

711
option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" OFF)
812

13+
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND GKlib_IS_TOP_LEVEL)
14+
set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/local" CACHE PATH "install prefix" FORCE)
15+
endif()
16+
917
set(CMAKE_C_STANDARD 99)
1018

11-
message(STATUS "${PROJECT_NAME} ${PROJECT_VERSION} Arch: ${CMAKE_SYSTEM_PROCESSOR}")
19+
message(STATUS "${PROJECT_NAME} ${PROJECT_VERSION} CMake ${CMAKE_VERSION} Arch: ${CMAKE_SYSTEM_PROCESSOR} install prefix: ${CMAKE_INSTALL_PREFIX}")
1220

1321
set(GKLIB_PATH ${PROJECT_SOURCE_DIR})
1422

@@ -37,5 +45,7 @@ if(BUILD_TESTING)
3745
add_subdirectory(test)
3846
endif()
3947

40-
install(TARGETS GKlib)
48+
install(TARGETS GKlib EXPORT ${PROJECT_NAME}-targets)
4149
install(FILES ${GKlib_includes} TYPE INCLUDE)
50+
51+
include(cmake/install.cmake)

LICENSE.txt renamed to LICENSE

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ http://www.apache.org/licenses/LICENSE-2.0
1212

1313
Unless required by applicable law or agreed to in writing, software
1414
distributed under the License is distributed on an "AS IS" BASIS,
15-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16-
implied. See the License for the specific language governing
15+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16+
implied. See the License for the specific language governing
1717
permissions and limitations under the License.
18-

cmake/config.cmake.in

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@PACKAGE_INIT@
2+
3+
include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake)
4+
5+
set(ffilesystem_shaky @ffilesystem_shaky@)
6+
7+
target_link_libraries(metis::metis INTERFACE GKlib)
8+
9+
check_required_components(@PROJECT_NAME@)

cmake/install.cmake

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# --- BOILERPLATE: install / packaging
2+
3+
include(CMakePackageConfigHelpers)
4+
5+
configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/config.cmake.in
6+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake
7+
INSTALL_DESTINATION cmake
8+
)
9+
10+
write_basic_package_version_file(
11+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake
12+
COMPATIBILITY SameMajorVersion
13+
)
14+
15+
install(EXPORT ${PROJECT_NAME}-targets
16+
NAMESPACE ${PROJECT_NAME}::
17+
DESTINATION cmake
18+
)
19+
20+
install(FILES
21+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake
22+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake
23+
DESTINATION cmake
24+
)
25+
26+
# # allow use of package from build directory without installing
27+
export(EXPORT ${PROJECT_NAME}-targets
28+
FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}-targets.cmake
29+
NAMESPACE ${PROJECT_NAME}::
30+
)
31+
32+
# --- CPack
33+
34+
set(CPACK_GENERATOR "TBZ2")
35+
set(CPACK_SOURCE_GENERATOR "TBZ2")
36+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
37+
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
38+
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/package)
39+
40+
# not .gitignore as its regex syntax is more advanced than CMake
41+
set(CPACK_SOURCE_IGNORE_FILES .git/ .github/ .vscode/ _CPack_Packages/
42+
${CMAKE_BINARY_DIR}/ ${PROJECT_BINARY_DIR}/
43+
archive/ concepts/
44+
)
45+
46+
install(FILES ${CPACK_RESOURCE_FILE_README} ${CPACK_RESOURCE_FILE_LICENSE}
47+
DESTINATION share/docs/${PROJECT_NAME}
48+
)
49+
50+
include(CPack)

test/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,3 @@ foreach(prog IN ITEMS strings gksort fis gkrw gkgraph csrcnv grKx m2mnbrs cmpnbr
1717
add_test(NAME ${prog} COMMAND ${prog})
1818
endif()
1919
endforeach()
20-
21-
# Install a subset of them
22-
install(TARGETS csrcnv)

0 commit comments

Comments
 (0)