File tree Expand file tree Collapse file tree 16 files changed +123
-114
lines changed Expand file tree Collapse file tree 16 files changed +123
-114
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.26)
2
2
project (ltfs
3
3
LANGUAGES C)
4
4
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /.cmake" )
5
+ set (VERSION "2.5.0.0 (Prelim cmake)" )
5
6
6
7
include (CheckSymbolExists REQUIRED)
7
8
include (CheckTypeSize REQUIRED)
@@ -31,3 +32,10 @@ endif()
31
32
32
33
add_subdirectory (messages)
33
34
add_subdirectory (src)
35
+
36
+ set (prefix ${CMAKE_INSTALL_PREFIX} CACHE INTERNAL "Base installation directory (equivalent to Autotools' prefix)" )
37
+ set (exec_prefix ${CMAKE_INSTALL_FULL_BINDIR} CACHE INTERNAL "Directory for architecture-dependent executables (like Autotools' exec_prefix)" )
38
+ set (libdir ${CMAKE_INSTALL_FULL_LIBDIR} CACHE INTERNAL "Directory for installing libraries (like Autotools' libdir)" )
39
+ set (includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR} CACHE INTERNAL "Directory for installing header files (like Autotools' includedir)" )
40
+ set (PACKAGE ${PROJECT_NAME} CACHE INTERNAL "Package name (equivalent to Autotools' PACKAGE)" )
41
+ configure_file (ltfs.pc.in ltfs.pc)
Original file line number Diff line number Diff line change 1
- # TODO: Make configuration
1
+ # TODO: Change how this is done
2
+
3
+ ${SED} -e "s!__PLATFORM_DRIVERS__!${PLAT_OPT} !" ltfs.conf.in >ltfs.conf.in1
4
+ ${SED} -e "s!__LIBDIR__!@libdir@!" ltfs.conf.in1 >ltfs.conf
5
+ rm ltfs.conf.in1
6
+ mv ltfs.conf ltfs.conf.tmp
7
+ ${SED} -e "s!__DEFAULT_TAPE__!$(DEFAULT_TAPE)!" ltfs.conf.tmp >ltfs.conf
8
+ mv ltfs.conf ltfs.conf.tmp
9
+ ${SED} -e "s!__DEFAULT_IOSCHED__!$(DEFAULT_IOSCHED)!" ltfs.conf.tmp >ltfs.conf
10
+ mv ltfs.conf ltfs.conf.tmp
11
+ ${SED} -e "s!__DEFAULT_KMI__!$(DEFAULT_KMI)!" ltfs.conf.tmp >ltfs.conf
12
+ mv ltfs.conf ltfs.conf.tmp
13
+ ${SED} -e "s!__CONFDIR__!@sysconfdir@!" ltfs.conf.tmp >ltfs.conf
14
+ rm ltfs.conf.tmp
Original file line number Diff line number Diff line change @@ -20,17 +20,20 @@ set(MESSAGES_LIBS
20
20
21
21
foreach (NAME IN LISTS MESSAGES_LIBS)
22
22
file (GLOB SRCS "${NAME} /*.txt" )
23
+ make_directory ("${CMAKE_CURRENT_BINARY_DIR} /res_${NAME} " )
23
24
24
25
# Add the command as a target to be build when all is invoked
25
- add_custom_target ("${NAME} .a" ALL
26
- ${ICU_GENRB_EXECUTABLE} -q ${SRCS} 1> /dev/null
26
+ add_custom_target ("${NAME} _bundle"
27
+ COMMAND ${ICU_GENRB_EXECUTABLE} -q ${SRCS} 1> /dev/null
27
28
COMMAND ls *.res > paths .txt
28
29
COMMAND ${ICU_PKGDATA_EXECUTABLE} -m static -p ${NAME} -q paths .txt 1> /dev/null
29
30
COMMAND cp lib${NAME} .a ..
31
+ BYPRODUCTS res_${NAME} lib${NAME} .a
30
32
WORKING_DIRECTORY res_${NAME}
31
33
)
32
34
33
35
# Define the library as an imported CMake lib
34
- add_library ("lib${NAME} _messages" STATIC IMPORTED GLOBAL )
35
- set_target_properties ("lib${NAME} _messages" PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR} /lib${NAME} .a" )
36
+ add_library ("lib${NAME} " STATIC IMPORTED GLOBAL )
37
+ set_target_properties ("lib${NAME} " PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR} /lib${NAME} .a" )
38
+ add_dependencies ("lib${NAME} " "${NAME} _bundle" )
36
39
endforeach ()
Original file line number Diff line number Diff line change 1
- add_executable (ltfs main.c ltfs_fuse.c)
2
- target_link_libraries (ltfs
1
+ add_executable (ltfs_bin main.c ltfs_fuse.c)
2
+ target_link_libraries (ltfs_bin
3
3
Threads::Threads
4
4
PkgConfig::FUSE
5
5
LibXml2::LibXml2
6
6
PkgConfig::UUID
7
7
ICU::uc
8
- libltfs
8
+ ltfs
9
9
)
10
- target_include_directories (ltfs BEFORE PUBLIC "." )
10
+ set_property (TARGET ltfs_bin PROPERTY OUTPUT_NAME ltfs)
11
+ target_include_directories (ltfs_bin BEFORE PUBLIC "." )
11
12
add_compile_definitions (
12
- LTFS_CONFIG_FILE="${SYSCONFDIR } /ltfs.conf"
13
+ LTFS_CONFIG_FILE="${CMAKE_INSTALL_FULL_SYSCONFDIR } /ltfs.conf"
13
14
LTFS_BASE_DIR="${CMAKE_INSTALL_PREFIX} "
14
- PACKAGE_VERSION ="${PROJECT_VERSION } "
15
+ PACKAGE_VERSION ="${VERSION } "
15
16
PACKAGE_NAME="${PROJECT_NAME} "
16
17
)
17
18
Original file line number Diff line number Diff line change 1
- set (LIBIOSCHED_FCFS_SRCS fcfs.c)
2
- add_library (libiosched_fcfs SHARED ${LIBIOSCHED_FCFS_SRCS} )
3
- target_link_libraries (libiosched_fcfs
1
+ add_library (iosched_fcfs SHARED fcfs.c)
2
+ target_link_libraries (iosched_fcfs
4
3
PkgConfig::FUSE
5
- libltfs
6
- libiosched_fcfs_messages
4
+ ltfs
5
+ libiosched_fcfs
7
6
)
8
- target_include_directories (libiosched_fcfs BEFORE PUBLIC ".." )
7
+ target_include_directories (iosched_fcfs BEFORE PUBLIC ".." )
9
8
10
- set (LIBIOSCHED_UNIFIED_SRCS
9
+ add_library (iosched_unified SHARED
11
10
unified.c
12
11
cache_manager.c
13
12
)
14
- add_library (libiosched_unified SHARED ${LIBIOSCHED_UNIFIED_SRCS} )
15
- target_link_libraries (libiosched_unified
13
+ target_link_libraries (iosched_unified
16
14
PkgConfig::FUSE
17
- libltfs
18
- libiosched_unified_messages
15
+ ltfs
16
+ libiosched_unified
19
17
)
20
- target_include_directories (libiosched_unified BEFORE PUBLIC ".." )
18
+ target_include_directories (iosched_unified BEFORE PUBLIC ".." )
Original file line number Diff line number Diff line change 1
- set (LIBKMI_SIMPLE_SRCS
1
+ add_library (kmi_simple SHARED
2
2
simple.c
3
3
key_format_ltfs.c
4
4
)
5
- add_library (libkmi_simple SHARED ${LIBKMI_SIMPLE_SRCS} )
6
- target_link_libraries (libkmi_simple
5
+ target_link_libraries (kmi_simple
7
6
PkgConfig::FUSE
8
- libltfs
9
- libkmi_simple_messages
7
+ ltfs
8
+ libkmi_simple
10
9
)
11
- target_include_directories (libkmi_simple BEFORE PUBLIC ".." )
10
+ target_include_directories (kmi_simple BEFORE PUBLIC ".." )
12
11
13
- set (LIBKMI_FLATFILE_SRCS
12
+ add_library (kmi_flatfile SHARED
14
13
flatfile.c
15
14
key_format_ltfs.c
16
15
)
17
- add_library (libkmi_flatfile SHARED ${LIBKMI_FLATFILE_SRCS} )
18
- target_link_libraries (libkmi_flatfile
16
+ target_link_libraries (kmi_flatfile
19
17
PkgConfig::FUSE
20
- libltfs
21
- libkmi_flatfile_messages
18
+ ltfs
19
+ libkmi_flatfile
22
20
)
23
- target_include_directories (libkmi_flatfile BEFORE PUBLIC ".." )
21
+ target_include_directories (kmi_flatfile BEFORE PUBLIC ".." )
Original file line number Diff line number Diff line change 1
1
file (GLOB_RECURSE LIBLTFS_SRCS LIST_DIRECTORIES false "*.c" )
2
- add_library (libltfs SHARED ${LIBLTFS_SRCS} )
3
- set_property (TARGET libltfs PROPERTY OUTPUT_NAME ltfs)
4
- target_include_directories (libltfs BEFORE PUBLIC ".." )
2
+ add_library (ltfs SHARED ${LIBLTFS_SRCS} )
3
+ target_include_directories (ltfs BEFORE PUBLIC ".." )
5
4
6
- # TODO: Fix bundle errors.
7
- # ICU cannot find the message bundles for some weird reason
8
- target_link_libraries (libltfs
5
+ target_link_libraries (ltfs
9
6
Threads::Threads
10
7
PkgConfig::FUSE
11
8
LibXml2::LibXml2
12
9
PkgConfig::UUID
13
- libbin_ltfs_messages
14
- liblibltfs_messages
15
- libinternal_error_messages
16
- libtape_common_messages
10
+ libbin_ltfs
11
+ liblibltfs
12
+ libinternal_error
13
+ libtape_common
17
14
)
18
15
19
16
if (ENABLE_SNMP)
20
- target_link_libraries (libltfs PkgConfig::SNMP)
17
+ target_link_libraries (ltfs PkgConfig::SNMP)
21
18
endif ()
Original file line number Diff line number Diff line change 1
- set (LIBTAPE_REED_SOLOMON_CRC_SRCS
1
+ add_library (tape_reed_solomon_crc SHARED
2
2
reed_solomon_crc.c
3
3
)
4
- add_library (libtape_reed_solomon_crc SHARED ${LIBTAPE_REED_SOLOMON_CRC_SRCS} )
5
- target_link_libraries (libtape_reed_solomon_crc
4
+ target_link_libraries (tape_reed_solomon_crc
6
5
PkgConfig::FUSE
7
- libltfs
6
+ ltfs
8
7
)
9
8
10
- set (LIBTAPE_CRC32C_CRC_SRCS
9
+ add_library (tape_crc32c_crc SHARED
11
10
crc32c_crc.c
12
11
)
13
- add_library (libtape_crc32c_crc SHARED ${LIBTAPE_CRC32C_CRC_SRCS} )
14
- target_link_libraries (libtape_crc32c_crc
12
+ target_link_libraries (tape_crc32c_crc
15
13
PkgConfig::FUSE
16
- libltfs
14
+ ltfs
17
15
)
Original file line number Diff line number Diff line change 1
- set (LIBTAPE_CAM_SRCS
1
+ add_library (tape_cam SHARED
2
2
cam_cmn.c
3
3
cam_tc.c
4
4
../../vendor_compat.c
5
5
../../ibm_tape.c
6
6
../../hp_tape.c
7
7
../../quantum_tape.c
8
8
)
9
- add_library (libtape_cam SHARED ${LIBTAPE_CAM_SRCS} )
10
- target_link_libraries (libtape_cam
9
+ target_link_libraries (tape_cam
11
10
PkgConfig::FUSE
12
- libltfs
13
- libtape_freebsd_cam_messages
14
- libtape_reed_solomon_crc
15
- libtape_crc32c_crc
11
+ ltfs
12
+ libtape_freebsd_cam
13
+ tape_reed_solomon_crc
14
+ tape_crc32c_crc
16
15
)
17
- target_include_directories (libtape_cam BEFORE PUBLIC "../.." )
16
+ target_include_directories (tape_cam BEFORE PUBLIC "../.." )
Original file line number Diff line number Diff line change 1
- set (LIBTAPE_FILE_SRCS
1
+ add_library (tape_file SHARED
2
2
filedebug_tc.c
3
3
filedebug_conf_tc.c
4
4
../../ibm_tape.c
5
5
)
6
- add_library (libtape_file SHARED ${LIBTAPE_FILE_SRCS} )
7
- target_link_libraries (libtape_file
6
+ target_link_libraries (tape_file
8
7
PkgConfig::FUSE
9
- libltfs
10
- libtape_generic_file_messages
8
+ ltfs
9
+ libtape_generic_file
11
10
)
12
- target_include_directories (libtape_file BEFORE PUBLIC "../.." )
11
+ target_include_directories (tape_file BEFORE PUBLIC "../.." )
You can’t perform that action at this time.
0 commit comments