]> FriiDump Source - friidump.git/blobdiff - src/CMakeLists.txt
Record A102 and B101 live profile evidence
[friidump.git] / src / CMakeLists.txt
index 1ee59dbd1a1889dd645fe52c54a0d726e667e29b..bbb9c4dafc24e6dd316ec2d762e354f57f03639c 100644 (file)
@@ -20,13 +20,37 @@ if (WIN32)
        )
 endif (WIN32)
 
+# Keep the stable Redump DAT resources with the CMake-built executable.
+# This makes source-tree builds independent of the process working directory.
+file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/redump_dat")
+foreach (FRIIDUMP_REDUMP_DAT_FILE
+    "Microsoft - Xbox.dat"
+    "Nintendo - GameCube.dat"
+    "Nintendo - Wii.dat"
+    "README.txt"
+)
+    configure_file (
+        "${FriiDump_SOURCE_DIR}/redump_dat/${FRIIDUMP_REDUMP_DAT_FILE}"
+        "${CMAKE_CURRENT_BINARY_DIR}/redump_dat/${FRIIDUMP_REDUMP_DAT_FILE}"
+        COPYONLY
+    )
+endforeach ()
+
 add_executable (
        friidump
 
        friidump.c
+       native_report.c
+       native_report.h
+       redump_dat.c
+       redump_dat.h
        ${additional_sources}
 )
 
+if (UNIX AND NOT WIN32)
+       target_sources (friidump PRIVATE linux_rawio.c linux_rawio.h)
+endif ()
+
 # Link the executable to the Hello library.
 target_link_libraries (
        friidump
@@ -34,6 +58,17 @@ target_link_libraries (
        friidumplib
 )
 
+if (FRIIDUMP_BUILD_COMMIT)
+       target_compile_definitions (
+               friidump
+               PRIVATE FRIIDUMP_BUILD_COMMIT="${FRIIDUMP_BUILD_COMMIT}"
+       )
+endif (FRIIDUMP_BUILD_COMMIT)
+
+if (WIN32)
+       target_link_libraries (friidump ole32)
+endif (WIN32)
+
 if (WIN32)
        # We only want a version number on Windows (Is it any use?)
        set_target_properties (friidump PROPERTIES VERSION 0.2)
@@ -42,9 +77,66 @@ if (WIN32)
                TARGETS friidump
                RUNTIME DESTINATION /
        )
+       install(
+               DIRECTORY "${FriiDump_SOURCE_DIR}/redump_dat/"
+               DESTINATION redump_dat
+       )
 else (WIN32)
        install(
                TARGETS friidump
                RUNTIME DESTINATION bin
        )
-endif (WIN32)
\ No newline at end of file
+       install(
+               DIRECTORY "${FriiDump_SOURCE_DIR}/redump_dat/"
+               DESTINATION share/friidump/redump_dat
+       )
+endif (WIN32)
+if (BUILD_NATIVE_REPORT_TESTS)
+       if (UNIX AND NOT WIN32)
+               add_executable (
+                       friidump-linux-rawio-test
+                       ${FriiDump_SOURCE_DIR}/tests/test_linux_rawio.c
+                       linux_rawio.c
+                       linux_rawio.h
+               )
+               target_include_directories (friidump-linux-rawio-test PRIVATE ${FriiDump_SOURCE_DIR}/src)
+       endif ()
+
+       add_executable (
+               friidump-report-fixtures
+               ${FriiDump_SOURCE_DIR}/tests/test_native_report.c
+               ${FriiDump_SOURCE_DIR}/libfriidump/nintendo_disc_header.c
+               ${FriiDump_SOURCE_DIR}/libfriidump/nintendo_disc_header.h
+               ${FriiDump_SOURCE_DIR}/libfriidump/xbox_region.c
+               ${FriiDump_SOURCE_DIR}/libfriidump/xbox_region.h
+               native_report.c
+               native_report.h
+       )
+       target_include_directories (friidump-report-fixtures PRIVATE ${FriiDump_SOURCE_DIR}/src ${FriiDump_SOURCE_DIR}/libfriidump)
+       if (WIN32)
+               target_link_libraries (friidump-report-fixtures ole32)
+       endif (WIN32)
+
+       add_executable (
+               friidump-redump-dat-resolver-test
+               ${FriiDump_SOURCE_DIR}/tests/test_redump_dat_resolver.c
+               redump_dat.c
+               redump_dat.h
+       )
+       target_include_directories (friidump-redump-dat-resolver-test PRIVATE ${FriiDump_SOURCE_DIR}/src)
+
+       add_executable (
+               friidump-redump-dat-verify-test
+               ${FriiDump_SOURCE_DIR}/tests/test_redump_dat_verify.c
+               redump_dat.c
+               redump_dat.h
+       )
+       target_include_directories (friidump-redump-dat-verify-test PRIVATE ${FriiDump_SOURCE_DIR}/src)
+
+       add_executable (
+               friidump-xbox-portable-metadata-test
+               ${FriiDump_SOURCE_DIR}/tests/test_xbox_portable_metadata.c
+       )
+       target_include_directories (friidump-xbox-portable-metadata-test PRIVATE ${FriiDump_SOURCE_DIR}/libfriidump)
+       target_link_libraries (friidump-xbox-portable-metadata-test friidumplib)
+endif (BUILD_NATIVE_REPORT_TESTS)