19 string(REGEX REPLACE "(^.+)" "${sourcepath}\\1" newsource ${mySource}) |
19 string(REGEX REPLACE "(^.+)" "${sourcepath}\\1" newsource ${mySource}) |
20 set(source ${source} ${newsource}) |
20 set(source ${source} ${newsource}) |
21 endforeach(mySource) |
21 endforeach(mySource) |
22 endmacro(add_source) |
22 endmacro(add_source) |
23 |
23 |
|
24 #Set common definitions using add_definitions |
|
25 #Target specific definitions will be add using set_target_properties |
24 #add_definitions(-DUNICODE) |
26 #add_definitions(-DUNICODE) |
25 add_definitions(-D__VC32__) |
27 add_definitions(-D__VC32__) |
26 add_definitions(-D_UNICODE) |
28 add_definitions(-D_UNICODE) |
27 add_definitions(-D__LEAVE_EQUALS_THROW__) |
29 add_definitions(-D__LEAVE_EQUALS_THROW__) |
28 add_definitions(-D__WINS__) |
30 add_definitions(-D__WINS__) |
29 #__CPU_X86 is declared by __WINS__ |
31 #__CPU_X86 is declared by __WINS__ |
30 #add_definitions(-D__CPU_X86) |
32 #add_definitions(-D__CPU_X86) |
31 add_definitions(-D__DLL__) |
33 #add_definitions(-D__DLL__) |
|
34 |
|
35 |
|
36 #set(commonDefines "__VC32__; _UNICODE;") |
|
37 |
|
38 |
|
39 |
32 |
40 |
33 include_directories (../euser ../euser/unicode ../include |
41 include_directories (../euser ../euser/unicode ../include |
34 ../include/nkern ../include/nkern/win32 ../include/kernel ../include/kernel/win32 ../include/memmodel/emul/win32 ../include/memmodel/emul) |
42 ../include/nkern ../include/nkern/win32 ../include/kernel ../include/kernel/win32 ../include/memmodel/emul/win32 ../include/memmodel/emul) |
35 |
43 |
36 |
44 |
100 set (sourcepath ../euser/unicode/) |
108 set (sourcepath ../euser/unicode/) |
101 add_source( |
109 add_source( |
102 collate.cpp unicode.cpp unitable.cpp Compare.cpp |
110 collate.cpp unicode.cpp unitable.cpp Compare.cpp |
103 ) |
111 ) |
104 |
112 |
105 #define our library |
113 #define our target |
106 add_library (emulator SHARED ../euser/epoc/win32/emulator.cpp) |
|
107 target_link_libraries(emulator kernel32) |
|
108 |
114 |
|
115 ### EMULATOR: used by euser and kernel for emulation |
|
116 add_library (emulator SHARED ../kernel/win32/l_entry.cpp ../euser/epoc/win32/emulator.cpp) #Compile the KLIB target entry point which is l_entry.cpp |
|
117 target_link_libraries(emulator kernel32) #kernel32 |
|
118 #set_target_properties(emulator PROPERTIES COMPILE_FLAGS "/Zl") #No default library |
|
119 set_target_properties(emulator PROPERTIES LINK_FLAGS "/ENTRY:_Win32DllMain") #Change the entry point |
|
120 |
|
121 ### EUSER: many user library |
109 add_library (euser SHARED ${source}) |
122 add_library (euser SHARED ${source}) |
110 add_dependencies(euser genexec emulator) |
123 add_dependencies(euser genexec emulator) |
|
124 set_target_properties(euser PROPERTIES COMPILE_DEFINITIONS "__DLL__") |
111 |
125 |
|
126 |
|
127 ### ESTUB: not sure why need that yet |
112 add_library (estub STATIC ../euser/epoc/win32/uc_stub.cpp) |
128 add_library (estub STATIC ../euser/epoc/win32/uc_stub.cpp) |
113 #set_target_properties(estub PROPERTIES LINK_FLAGS /ENTRY:E32Bootstrap) |
129 #set_target_properties(estub PROPERTIES LINK_FLAGS /ENTRY:E32Bootstrap) |
114 |
130 |
115 add_executable(epoc ../euser/epoc/win32/uc_epoc.cpp) |
131 ### SCPPNWDL_KERN: used by kernel. It contains new operators override. |
|
132 #To be linked by kernel |
|
133 add_library (scppnwdl_kern STATIC ../euser/epoc/win32/scppnwdl.cpp) |
|
134 add_dependencies(scppnwdl_kern euser) |
|
135 |
|
136 ### EPOC: emulator executable |
|
137 add_executable(epoc ../euser/epoc/win32/uc_exe.cpp ../euser/epoc/win32/uc_epoc.cpp) #Compile the EXE target entry point which is uc_exe.cpp |
116 add_dependencies(epoc estub euser) |
138 add_dependencies(epoc estub euser) |
117 set_target_properties(epoc PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup /SUBSYSTEM:WINDOWS") |
139 set_target_properties(epoc PROPERTIES LINK_FLAGS "/ENTRY:_E32Bootstrap /SUBSYSTEM:WINDOWS /NODEFAULTLIB") |
118 #set_target_properties(epoc PROPERTIES LINK_FLAGS "/ENTRY:_E32Bootstrap /SUBSYSTEM:WINDOWS /NODEFAULTLIB /NOASSEMBLY") |
140 target_link_libraries(epoc msvcrt) |
|
141 #set_target_properties(epoc PROPERTIES COMPILE_FLAGS "/Zl") |
|
142 #set_target_properties(epoc PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup /SUBSYSTEM:WINDOWS") |
|
143 #set_target_properties(epoc PROPERTIES LINK_FLAGS "/NODEFAULTLIB") |
|
144 |
119 #set_target_properties(target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ...) |
145 #set_target_properties(target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ...) |
120 |
146 |
121 |
147 |
122 #No need for emulator here |
148 #No need for emulator here |
123 #add_executable(epoc ./euser/epoc/win32/uc_epoc.cpp) |
149 #add_executable(epoc ./euser/epoc/win32/uc_epoc.cpp) |
124 #target_link_libraries(epoc estub euser) |
150 |
125 |
151 |
126 |
152 |
127 #define vs IDE folders |
153 #define vs IDE folders |
128 source_group(Sources REGULAR_EXPRESSION ".+\\.cpp$") |
154 source_group(Sources REGULAR_EXPRESSION ".+\\.cpp$") |
129 source_group(Includes REGULAR_EXPRESSION ".+\\.h$") |
155 source_group(Includes REGULAR_EXPRESSION ".+\\.h$") |