X-Git-Url: https://git.jtryba.com/browse/friidump.git/blobdiff_plain/d44030dfa440b1967ec7dcd3ccfe46fb69934486..1b1f91613a6976707cb92f47efa819c278c08d4f:/src/CMakeLists.txt?ds=inline diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1ee59db..bbb9c4d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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)