Rework CMakeLists.txt so project is compiled without intermediary libraries.

This commit is contained in:
2021-04-24 20:26:43 +01:00
parent ea076dc481
commit 9c8a39d61e
14 changed files with 113 additions and 155 deletions

View File

@@ -22,14 +22,19 @@
# Copyright (C) 2011-2021 Natalia Portillo
# *****************************************************************************/
set(MAIN_SOURCES main.c main.h log.c log.h)
add_library(core ${MAIN_SOURCES})
add_subdirectory(macos)
add_subdirectory(dos)
add_subdirectory(win32)
add_subdirectory(unix)
add_subdirectory(beos)
add_subdirectory(amiga)
add_subdirectory(os2)
add_subdirectory(os2)
# This must be after all directories
add_sources(main.c main.h log.c log.h)
# Even if empty it needs to be present
add_sub_definitions()
# Even if empty it needs to be present
add_sub_libraries()

View File

@@ -26,18 +26,7 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "AmigaOS|MorphOS" AND NOT AROS)
return()
endif()
project(
fssetter-amiga
DESCRIPTION "Filesystem test creator for AmigaOS and compatibles"
LANGUAGES C)
add_sub_definitions(__USE_INLINE__)
add_sub_definitions(__USE_BASETYPE__)
add_definitions(-D__USE_INLINE__)
add_definitions(-D__USE_BASETYPE__)
set(PLATFORM_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c perms.h rsrcfork.c sparse.c time.c time.h volume.c xattr.c)
set(EXECUTABLE_NAME "fssetter-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core)
add_sources(attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c perms.h rsrcfork.c sparse.c time.c time.h volume.c xattr.c)

View File

@@ -26,15 +26,4 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "BeOS|Haiku")
return()
endif()
project(
fssetter-beos
DESCRIPTION "Filesystem test creator for BeOS and Haiku"
LANGUAGES C)
set(PLATFORM_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c perms.h rsrcfork.c sparse.c time.c time.h volume.c volume.h xattr.c xattr.h)
set(EXECUTABLE_NAME "fssetter-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core)
add_sources(attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c perms.h rsrcfork.c sparse.c time.c time.h volume.c volume.h xattr.c xattr.h)

View File

@@ -26,14 +26,4 @@ if(NOT DOS)
return()
endif()
project(fssetter-dos
DESCRIPTION "Filesystem test creator for DOS"
LANGUAGES C)
set(PLATFORM_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c dostime.h time.c volume.c xattr.c dos.c attr.h dosuname.c dosuname.h dosdefs.h djgpp.c)
set(EXECUTABLE_NAME "fssetter")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core)
add_sources(attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c dostime.h time.c volume.c xattr.c dos.c attr.h dosuname.c dosuname.h dosdefs.h djgpp.c)

View File

@@ -29,13 +29,8 @@ endif()
include(CheckIncludeFiles)
include(CheckSymbolExists)
project(
fssetter-macos
DESCRIPTION "Filesystem test creator for MacOS"
LANGUAGES C)
add_definitions(-Dmacintosh)
add_definitions(-DRetro68)
add_sub_definitions(macintosh)
add_sub_definitions(Retro68)
CHECK_INCLUDE_FILES("Aliases.h" HAVE_ALIASES_H)
CHECK_INCLUDE_FILES("FileTypesAndCreators.h" HAVE_FILE_TYPES_AND_CREATORS_H)
@@ -43,33 +38,25 @@ CHECK_INCLUDE_FILES("Multiverse.h" HAVE_MULTIVERSE_H)
CHECK_SYMBOL_EXISTS(PBXGetVolInfo Files.h HAVE_PBXGETVOLINFO)
if(HAVE_ALIASES_H)
add_definitions(-DHAVE_ALIASES_H)
add_sub_definitions(HAVE_ALIASES_H)
endif()
if(HAVE_FILE_TYPES_AND_CREATORS_H)
add_definitions(-DHAVE_FILE_TYPES_AND_CREATORS_H)
add_sub_definitions(HAVE_FILE_TYPES_AND_CREATORS_H)
endif()
if(HAVE_MULTIVERSE_H)
add_definitions(-DHAVE_MULTIVERSE_H)
add_sub_definitions(HAVE_MULTIVERSE_H)
endif()
if(NOT HAVE_PBXGETVOLINFO)
add_definitions(-DNO_PBXGETVOLINFO)
add_sub_definitions(NO_PBXGETVOLINFO)
endif()
set(PLATFORM_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c macos.h macos.r retro68.h attr.h time.h rsrcfork.h links.h)
add_sources(attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c macos.h macos.r retro68.h attr.h time.h rsrcfork.h links.h)
if(${CMAKE_SYSTEM_NAME} MATCHES "Retro68")
set(PROCESSOR "m68k")
else()
set(PROCESSOR "ppc")
endif()
set(EXECUTABLE_NAME "fssetter-macos-${PROCESSOR}")
#add_application(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
#target_link_libraries(${EXECUTABLE_NAME} core)
add_application(${EXECUTABLE_NAME} ../main.c ../log.c ${PLATFORM_SOURCES})

View File

@@ -26,14 +26,4 @@ if(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "I86")
return()
endif()
project(fssetter-os2
DESCRIPTION "Filesystem test creator for 16-bit OS/2"
LANGUAGES C)
set(SUBPLATFORM_SOURCES os.c xattr.c xattr.h)
set(EXECUTABLE_NAME "fssetter")
add_executable(${EXECUTABLE_NAME} ${SUBPLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core platform)
add_sources(os.c xattr.c xattr.h)

View File

@@ -26,16 +26,4 @@ if(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386|X86")
return()
endif()
project(fssetter-os2
DESCRIPTION "Filesystem test creator for 32-bit OS/2"
LANGUAGES C)
set(SUBPLATFORM_SOURCES os.c xattr.c)
set(EXECUTABLE_NAME "fssetter32")
find_library(OS2LIB "os2386")
add_executable(${EXECUTABLE_NAME} ${SUBPLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core platform)
add_sources(os.c xattr.c)

View File

@@ -26,10 +26,7 @@ if(NOT OS2)
return()
endif()
set(PLATFORM_SOURCES attr.c attr.h deleted.c dirdepth.c filename.c files.c frag.c links.c os2defs.h perms.c rsrcfork.c sparse.c time.c volume.c)
add_library(platform ${PLATFORM_SOURCES})
add_subdirectory(16bit)
add_subdirectory(32bit)
add_sources(attr.c attr.h deleted.c dirdepth.c filename.c files.c frag.c links.c os2defs.h perms.c rsrcfork.c sparse.c time.c volume.c)

View File

@@ -36,21 +36,22 @@ CHECK_SYMBOL_EXISTS(statvfs "sys/statvfs.h" HAVE_SYS_STATVFS)
if(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
message("-- Forcing statfs in sys/mount.h due to OpenBSD")
add_definitions(-DHAVE_SYS_MOUNT_H)
add_definitions(-DNEED_SYS_TYPES_H)
add_sub_definitions(HAVE_SYS_MOUNT_H)
add_sub_definitions(NEED_SYS_TYPES_H)
set(HAVE_STATFS_FTYPENAME 1)
set(HAVE_STATFS_NAMEMAX 1)
# Linux and FreeBSD
# Linux and FreeBSD
elseif(HAVE_SYS_STATFS)
message("-- Found statfs in sys/statfs.h")
add_definitions(-DHAVE_SYS_STATFS_H)
add_sub_definitions(HAVE_SYS_STATFS_H)
add_sub_definitions(TEST)
CHECK_STRUCT_HAS_MEMBER("struct statfs" "f_namelen" "sys/statfs.h" HAVE_STATFS_FNAMELEN)
CHECK_STRUCT_HAS_MEMBER("struct statfs" "f_fstypename" "sys/statfs.h" HAVE_STATFS_FTYPENAME)
CHECK_STRUCT_HAS_MEMBER("struct statfs" "f_namemax" "sys/statfs.h" HAVE_STATFS_NAMEMAX)
CHECK_STRUCT_HAS_MEMBER("struct statfs" "f_type" "sys/statfs.h" HAVE_STATFS_FTYPE)
elseif(HAVE_SYS_MOUNT) # Darwin and most other BSDs
message("-- Found statfs in sys/mount.h")
add_definitions(-DHAVE_SYS_MOUNT_H)
add_sub_definitions(HAVE_SYS_MOUNT_H)
CHECK_STRUCT_HAS_MEMBER("struct statfs" "f_namelen" "sys/mount.h" HAVE_STATFS_FNAMELEN)
CHECK_STRUCT_HAS_MEMBER("struct statfs" "f_fstypename" "sys/mount.h" HAVE_STATFS_FTYPENAME)
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # It's giving false positives sometimes
@@ -59,7 +60,7 @@ elseif(HAVE_SYS_MOUNT) # Darwin and most other BSDs
CHECK_STRUCT_HAS_MEMBER("struct statfs" "f_type" "sys/mount.h" HAVE_STATFS_FTYPE)
elseif(HAVE_SYS_STATVFS) # NetBSD >= 3.0
message("-- Found statvfs in sys/statvfs.h")
add_definitions(-DHAVE_SYS_STATVFS_H)
add_sub_definitions(HAVE_SYS_STATVFS_H)
CHECK_STRUCT_HAS_MEMBER("struct statvfs" "f_namemax" "sys/statvfs.h" HAVE_STATFS_NAMEMAX)
CHECK_STRUCT_HAS_MEMBER("struct statvfs" "f_fstypename" "sys/statvfs.h" HAVE_STATFS_FTYPENAME)
CHECK_STRUCT_HAS_MEMBER("struct statvfs" "f_type" "sys/statvfs.h" HAVE_STATFS_FTYPE)
@@ -67,23 +68,24 @@ endif()
if(HAVE_STATFS_FNAMELEN)
message("-- statfs has f_namelen member")
add_definitions(-DUSE_STATFS_FNAMELEN)
add_sub_definitions(USE_STATFS_FNAMELEN)
endif()
if(HAVE_STATFS_FTYPENAME)
message("-- statfs has f_fstypename member")
add_definitions(-DUSE_STATFS_FTYPENAME)
add_sub_definitions(USE_STATFS_FTYPENAME)
endif()
if(HAVE_STATFS_NAMEMAX)
message("-- statfs has f_namemax member")
add_definitions(-DUSE_STATFS_NAMEMAX)
add_sub_definitions(USE_STATFS_NAMEMAX)
endif()
set(UNIX_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c time.h)
add_library(unix ${UNIX_SOURCES})
add_subdirectory(darwin)
add_subdirectory(linux)
add_subdirectory(bsd)
# Even if empty it needs to be present
add_sub_libraries()
add_sources(attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c time.h)

View File

@@ -26,15 +26,4 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "^(([^k].*)?BSD|DragonFly)$" )
return()
endif()
project(
fssetter-bsd
DESCRIPTION "Filesystem test creator for BSD"
LANGUAGES C)
set(PLATFORM_SOURCES bsd.h xattr.c xattr.h attr.c attr.h volume.c volume.h)
set(EXECUTABLE_NAME "fssetter-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core unix)
add_sources(bsd.h xattr.c xattr.h attr.c attr.h volume.c volume.h)

View File

@@ -26,25 +26,15 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
return()
endif()
project(fssetter-darwin
DESCRIPTION "Filesystem test creator for Darwin"
LANGUAGES C)
find_library(CARBON_LIBRARY NAMES Carbon)
set(PLATFORM_SOURCES os.c darwin.h volume.c volume.h attr.c attr.h rsrcfork.c rsrcfork.h sparse.c xattr.c xattr.h)
add_sources(os.c darwin.h volume.c volume.h attr.c attr.h rsrcfork.c rsrcfork.h sparse.c xattr.c xattr.h)
if(CARBON_LIBRARY)
add_definitions("-DHAVE_CARBON")
set(PLATFORM_SOURCES ${PLATFORM_SOURCES} carbon.c carbon.h)
add_sub_definitions(HAVE_CARBON)
add_sources(carbon.c carbon.h)
endif()
set(EXECUTABLE_NAME "fssetter-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
if(CARBON_LIBRARY)
target_link_libraries(${EXECUTABLE_NAME} core unix ${CARBON_LIBRARY})
else()
target_link_libraries(${EXECUTABLE_NAME} core unix)
endif()
add_sub_libraries(${CARBON_LIBRARY})
endif()

View File

@@ -26,15 +26,6 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
return()
endif()
project(
fssetter-linux
DESCRIPTION "Filesystem test creator for Linux"
LANGUAGES C)
add_sources(attr.c sparse.c xattr.c xattr.h volume.c volume.h)
set(PLATFORM_SOURCES attr.c sparse.c xattr.c xattr.h volume.c volume.h)
set(EXECUTABLE_NAME "fssetter-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core unix dl)
add_sub_libraries(dl)

View File

@@ -26,15 +26,4 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
return()
endif()
project(
fssetter-win32
DESCRIPTION "Filesystem test creator for 32-bit and 64-bit Windows"
LANGUAGES C)
set(PLATFORM_SOURCES attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c attr.h rsrcfork.h xattr.h links.h volume.h timew32.h os.h sparse.h)
set(EXECUTABLE_NAME "fssetter-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
add_executable(${EXECUTABLE_NAME} ${PLATFORM_SOURCES})
target_link_libraries(${EXECUTABLE_NAME} core)
add_sources(attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c attr.h rsrcfork.h xattr.h links.h volume.h timew32.h os.h sparse.h)