]> FriiDump Source - friidump.git/blob - src/CMakeLists.txt
Document exact-release Linux hardware validation
[friidump.git] / src / CMakeLists.txt
1 # Make sure the compiler can find include files from our Hello library.
2 include_directories (
3         ${FriiDump_SOURCE_DIR}/libfriidump
4 )
5
6 # Make sure the linker can find the Hello library once it is built.
7 link_directories (
8         ${FriiDump_BINARY_DIR}/libfriidump
9 )
10
11 # Add executable called "helloDemo" that is built from the source files
12 # "demo.cxx" and "demo_b.cxx".  The extensions are automatically found.
13 if (WIN32)
14         set(
15                 additional_sources
16         
17                 getopt-win32.h
18                 getopt-win32.c
19                 getopt_long-win32.c
20         )
21 endif (WIN32)
22
23 # Keep the stable Redump DAT resources with the CMake-built executable.
24 # This makes source-tree builds independent of the process working directory.
25 file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/redump_dat")
26 foreach (FRIIDUMP_REDUMP_DAT_FILE
27     "Microsoft - Xbox.dat"
28     "Nintendo - GameCube.dat"
29     "Nintendo - Wii.dat"
30     "README.txt"
31 )
32     configure_file (
33         "${FriiDump_SOURCE_DIR}/redump_dat/${FRIIDUMP_REDUMP_DAT_FILE}"
34         "${CMAKE_CURRENT_BINARY_DIR}/redump_dat/${FRIIDUMP_REDUMP_DAT_FILE}"
35         COPYONLY
36     )
37 endforeach ()
38
39 add_executable (
40         friidump
41
42         friidump.c
43         native_report.c
44         native_report.h
45         redump_dat.c
46         redump_dat.h
47         ${additional_sources}
48 )
49
50 if (UNIX AND NOT WIN32)
51         target_sources (friidump PRIVATE linux_rawio.c linux_rawio.h)
52 endif ()
53
54 # Link the executable to the Hello library.
55 target_link_libraries (
56         friidump
57         
58         friidumplib
59 )
60
61 if (FRIIDUMP_BUILD_COMMIT)
62         target_compile_definitions (
63                 friidump
64                 PRIVATE FRIIDUMP_BUILD_COMMIT="${FRIIDUMP_BUILD_COMMIT}"
65         )
66 endif (FRIIDUMP_BUILD_COMMIT)
67
68 if (WIN32)
69         target_link_libraries (friidump ole32)
70 endif (WIN32)
71
72 if (WIN32)
73         # We only want a version number on Windows (Is it any use?)
74         set_target_properties (friidump PROPERTIES VERSION 0.2)
75         
76         install(
77                 TARGETS friidump
78                 RUNTIME DESTINATION /
79         )
80         install(
81                 DIRECTORY "${FriiDump_SOURCE_DIR}/redump_dat/"
82                 DESTINATION redump_dat
83         )
84 else (WIN32)
85         install(
86                 TARGETS friidump
87                 RUNTIME DESTINATION bin
88         )
89         install(
90                 DIRECTORY "${FriiDump_SOURCE_DIR}/redump_dat/"
91                 DESTINATION share/friidump/redump_dat
92         )
93 endif (WIN32)
94 if (BUILD_NATIVE_REPORT_TESTS)
95         if (UNIX AND NOT WIN32)
96                 add_executable (
97                         friidump-linux-rawio-test
98                         ${FriiDump_SOURCE_DIR}/tests/test_linux_rawio.c
99                         linux_rawio.c
100                         linux_rawio.h
101                 )
102                 target_include_directories (friidump-linux-rawio-test PRIVATE ${FriiDump_SOURCE_DIR}/src)
103         endif ()
104
105         add_executable (
106                 friidump-report-fixtures
107                 ${FriiDump_SOURCE_DIR}/tests/test_native_report.c
108                 ${FriiDump_SOURCE_DIR}/libfriidump/nintendo_disc_header.c
109                 ${FriiDump_SOURCE_DIR}/libfriidump/nintendo_disc_header.h
110                 ${FriiDump_SOURCE_DIR}/libfriidump/xbox_region.c
111                 ${FriiDump_SOURCE_DIR}/libfriidump/xbox_region.h
112                 native_report.c
113                 native_report.h
114         )
115         target_include_directories (friidump-report-fixtures PRIVATE ${FriiDump_SOURCE_DIR}/src ${FriiDump_SOURCE_DIR}/libfriidump)
116         if (WIN32)
117                 target_link_libraries (friidump-report-fixtures ole32)
118         endif (WIN32)
119
120         add_executable (
121                 friidump-redump-dat-resolver-test
122                 ${FriiDump_SOURCE_DIR}/tests/test_redump_dat_resolver.c
123                 redump_dat.c
124                 redump_dat.h
125         )
126         target_include_directories (friidump-redump-dat-resolver-test PRIVATE ${FriiDump_SOURCE_DIR}/src)
127
128         add_executable (
129                 friidump-redump-dat-verify-test
130                 ${FriiDump_SOURCE_DIR}/tests/test_redump_dat_verify.c
131                 redump_dat.c
132                 redump_dat.h
133         )
134         target_include_directories (friidump-redump-dat-verify-test PRIVATE ${FriiDump_SOURCE_DIR}/src)
135
136         add_executable (
137                 friidump-xbox-portable-metadata-test
138                 ${FriiDump_SOURCE_DIR}/tests/test_xbox_portable_metadata.c
139         )
140         target_include_directories (friidump-xbox-portable-metadata-test PRIVATE ${FriiDump_SOURCE_DIR}/libfriidump)
141         target_link_libraries (friidump-xbox-portable-metadata-test friidumplib)
142 endif (BUILD_NATIVE_REPORT_TESTS)