]> FriiDump Source - friidump.git/blob - libfriidump/CMakeLists.txt
FriiDump 0.5.3.16: finalize release identity and documentation
[friidump.git] / libfriidump / CMakeLists.txt
1 # Create a library called "Hello" which includes the source file "hello.cxx".
2 # The extension is already found.  Any number of sources could be listed here.
3 add_library (
4         friidumplib
5         ${libfriidump_type}
6         #SHARED
7         #STATIC
8         
9         brickblocker.h
10         brickblocker.c
11         byteorder.h
12         constants.h
13         disc.h
14         disc.c
15         dumper.h
16         dumper.c
17         dvd_drive.h
18         dvd_drive.c
19         hitachi.c
20         ecma-267.h
21         ecma-267.c
22         lite-on.c
23         misc.h
24         misc.c
25         nintendo_disc_header.h
26         nintendo_disc_header.c
27         renesas.c
28         rs.h
29         rs.c
30         unscrambler.h
31         unscrambler.c
32         vanilla_2064.c
33         vanilla_2384.c
34         win32compat.h
35         win32compat.c
36         xbox_region.h
37         xbox_region.c
38         xbox_portable.h
39         xbox_portable.c
40         xbox_ref_bridge.h
41         xbox_ref_bridge.c
42         xbox_xgd1_raw_id_probe.c
43         xbox_ref/xbox_ref_log.c
44 )
45
46 if (WIN32)
47         target_sources (friidumplib PRIVATE
48                 xbox_ref/utils.c
49                 xbox_ref/unlock.c
50                 xbox_ref/rc4.c
51                 xbox_ref/xbox_ref_sha1.c
52         )
53         target_include_directories (friidumplib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/xbox_ref)
54 endif (WIN32)
55
56 set_target_properties (friidumplib PROPERTIES OUTPUT_NAME "friidump")
57
58 include_directories (
59         ${FriiDump_SOURCE_DIR}/libmultihash
60 )
61
62 # Make sure the linker can find the Hello library once it is built.
63 link_directories (
64         ${FriiDump_BINARY_DIR}/libmultihash
65 )
66
67 # Link the executable to the Hello library.
68 target_link_libraries (
69         friidumplib
70         
71         multihashlib
72 )
73
74 # Before making a release, the LTVERSION string should be modified.
75 # The string is of the form CURRENT:REVISION:AGE.
76 #
77 # CURRENT (C)
78 # The most recent interface number that this library implements.
79 #
80 # REVISION (R)
81 # The implementation number that this library implements.
82 #
83 # AGE (A)
84 # The difference between the newest and oldest interfaces that this
85 # library implements. In other works, the library implements all the
86 # interface numbers in the range from number 'CURRENT - AGE' to
87 # 'CURRENT'.
88 #
89 # This means that:
90 #
91 #   - If interfaces have been changed or added, but binary compatibility has
92 #     been preserved, change to C+1:0:A+1
93 #
94 #   - If binary compatibility has been broken (eg removed or changed
95 #     interfaces) change to C+1:0:0
96 #
97 #   - If the interface is the same as the previous version, change to C:R+1:A
98 #
99 #set_target_properties (friidumplib PROPERTIES SOVERSION 1.0.0)
100
101
102 # Windows stuff to correctly build DLL or static library
103 #get_target_property (libfriidump_type friidumplib TYPE)
104 if (WIN32)
105         if (libfriidump_type STREQUAL "SHARED")
106 #               MESSAGE ("Building libfriidump DLL")
107                 ADD_DEFINITIONS (-DFRIIDUMPLIB_BUILD_DLL)
108                 set_target_properties (friidumplib PROPERTIES DEFINE_SYMBOL FRIIDUMPLIB_EXPORTS)
109
110                 install (
111                         TARGETS friidumplib
112                         RUNTIME DESTINATION /
113                         #ARCHIVE DESTINATION lib
114                 )
115         endif (libfriidump_type STREQUAL "SHARED")
116 else (WIN32)
117         # Install stuff, only if a shared library is being built
118         if (libfriidump_type STREQUAL "SHARED")
119                 install (
120                         TARGETS friidumplib
121                         LIBRARY DESTINATION lib
122                         ARCHIVE DESTINATION lib/static
123                 )
124         endif (libfriidump_type STREQUAL "SHARED")
125 endif (WIN32)