Skip to content

Commit 0d9f803

Browse files
committed
initial commit
0 parents  commit 0d9f803

File tree

7 files changed

+162
-0
lines changed

7 files changed

+162
-0
lines changed

CMakeLists.txt

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
cmake_minimum_required(VERSION 3.20)
2+
3+
include(CMakePrintHelpers)
4+
5+
#
6+
# Change default CMake options for convenience
7+
#
8+
9+
# Change default build type
10+
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Build type")
11+
12+
# Build .so by default
13+
set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libs")
14+
15+
# Build tests by default
16+
set(BUILD_TESTING ON CACHE BOOL "Build tests")
17+
18+
# Build -fPIC by default (even static) by default
19+
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "Position independent code")
20+
21+
# Silent some install messages by default
22+
set(CMAKE_INSTALL_MESSAGE "LAZY" CACHE STRING "")
23+
24+
# Add rpaths of external dependencies by default
25+
if (NOT DEFINED CMAKE_INSTALL_RPATH_USE_LINK_PATH)
26+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) # not CACHE, only for our project
27+
endif()
28+
29+
#
30+
# Read the version from version.txt
31+
#
32+
33+
file(READ "version.txt" version_txt)
34+
string(REGEX REPLACE "^[ \t\n]+|[ \t\n]+$" "" version_txt "${version_txt}") # Strip
35+
36+
#
37+
#
38+
#
39+
40+
project(MachineTypes
41+
LANGUAGES C
42+
VERSION "${version_txt}"
43+
DESCRIPTION "Simple C numeric types definitions")
44+
45+
cmake_print_variables(MachineTypes_VERSION)
46+
47+
# (after project() is important here:)
48+
include(GNUInstallDirs)
49+
50+
# Global PRIVATE compilation flags
51+
add_compile_options(-Wall -Wextra)
52+
53+
add_subdirectory(machinetypes)
54+
add_subdirectory(cmake)

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Simple C numeric types definitions

cmake/CMakeLists.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
include(CMakePackageConfigHelpers)
3+
4+
configure_package_config_file(MachineTypesConfig.cmake.in
5+
${CMAKE_CURRENT_BINARY_DIR}/MachineTypesConfig.cmake
6+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/MachineTypes/cmake)
7+
8+
write_basic_package_version_file(
9+
${CMAKE_CURRENT_BINARY_DIR}/MachineTypesConfigVersion.cmake
10+
COMPATIBILITY SameMinorVersion # AnyNewerVersion|SameMajorVersion|SameMinorVersion|ExactVersion
11+
VERSION "${MachineTypes_VERSION}")
12+
13+
install(FILES
14+
${CMAKE_CURRENT_BINARY_DIR}/MachineTypesConfig.cmake
15+
${CMAKE_CURRENT_BINARY_DIR}/MachineTypesConfigVersion.cmake
16+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/MachineTypes/cmake)
17+
18+
install(EXPORT MachineTypesTargets
19+
NAMESPACE MachineTypes::
20+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/MachineTypes/cmake)

cmake/MachineTypesConfig.cmake.in

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
set(MachineTypes_VERSION "@MachineTypes_VERSION@")
3+
4+
@PACKAGE_INIT@
5+
6+
#
7+
# Expose cmake options used at install
8+
#
9+
10+
set(MachineTypes_DUMMY_OPTION "@MachineTypes_DUMMY_OPTION@")
11+
12+
#
13+
# Dependencies
14+
#
15+
16+
#include(CMakeFindDependencyMacro)
17+
#find_dependency(Threads)
18+
#find_dependency(SomeConfigDep PATHS "@SomeConfigDep_DIR@")
19+
20+
#
21+
# MachineTypes Exported Targets
22+
#
23+
24+
include("${CMAKE_CURRENT_LIST_DIR}/MachineTypesTargets.cmake")
25+
26+
#
27+
# Message and detect multiple, different, find_package
28+
#
29+
30+
set(_details "${MachineTypes_DIR}")
31+
if(NOT DEFINED _MachineTypes_FOUND_MESSAGE_DETAILS)
32+
set(_MachineTypes_FOUND_MESSAGE_DETAILS "${_details}" CACHE INTERNAL "")
33+
message(STATUS "Found MachineTypes: ${MachineTypes_DIR} (${MachineTypes_VERSION})")
34+
elseif(NOT _MachineTypes_FOUND_MESSAGE_DETAILS STREQUAL _details)
35+
message(WARNING "Different MachineTypes were find_package:
36+
- ${_MachineTypes_FOUND_MESSAGE_DETAILS}
37+
- ${_details}")
38+
endif()
39+
40+
#
41+
# Final check
42+
#
43+
check_required_components(MachineTypes)

machinetypes/CMakeLists.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
set(INC_FILES inc/machine_types.h)
2+
3+
add_library(MachineTypes INTERFACE)
4+
add_library(MachineTypes::MachineTypes ALIAS MachineTypes)
5+
6+
target_include_directories(MachineTypes INTERFACE
7+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
8+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/inc>
9+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
10+
)
11+
12+
# target_link_libraries(mytestlib
13+
# PUBLIC Some_Lib_Used_in_Public_Headers
14+
# PRIVATE Some_Lib_Used_Internaly
15+
# )
16+
17+
#install(DIRECTORY
18+
# ${CMAKE_CURRENT_SOURCE_DIR}/inc/
19+
# ${CMAKE_CURRENT_BINARY_DIR}/inc/
20+
# DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
21+
# FILES_MATCHING PATTERN "*.h"
22+
# )
23+
install(FILES
24+
${INC_FILES}
25+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
26+
)
27+
28+
29+
install(TARGETS MachineTypes
30+
EXPORT MachineTypesTargets
31+
)

machinetypes/inc/machine_types.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#ifndef MACHINE_TYPES_H
2+
#define MACHINE_TYPES_H
3+
4+
// This header was manufactured specifically for smooth3d/magix3d
5+
6+
// it can be called from C code so we do not use cstdint
7+
#include <stdint.h>
8+
9+
typedef int64_t int_type;
10+
typedef double float_type;
11+
12+
#endif // MACHINE_TYPES_H

version.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2.0.0

0 commit comments

Comments
 (0)