@@ -10,33 +10,35 @@ string(COMPARE EQUAL "${CMAKE_SYSTEM_NAME}" Windows BUILD_PLATFORM_WINDOWS)
10
10
message (STATUS "CMAKE_VS_PLATFORM_NAME=" ${CMAKE_VS_PLATFORM_NAME} )
11
11
12
12
# Determin build platform
13
- if ((NOT DEFINED CMAKE_VS_PLATFORM_NAME ) OR (CMAKE_VS_PLATFORM_NAME STREQUAL "" ))
13
+ if ((NOT DEFINED CMAKE_VS_PLATFORM_NAME ) OR (CMAKE_VS_PLATFORM_NAME STREQUAL "" ))
14
14
message (STATUS "CMAKE_VS_PLATFORM_NAME is empty, use default: Win32" )
15
15
set (CMAKE_VS_PLATFORM_NAME Win32 )
16
16
endif ()
17
+
17
18
message (STATUS "CMAKE_VS_PLATFORM_NAME=" ${CMAKE_VS_PLATFORM_NAME} )
18
19
string (COMPARE EQUAL "${CMAKE_VS_PLATFORM_NAME} " Win32 BUILD_ARC_X8632 )
19
20
string (COMPARE EQUAL "${CMAKE_VS_PLATFORM_NAME} " x64 BUILD_ARC_X8664 )
20
21
21
22
# Determin build type
22
- if ((NOT DEFINED CMAKE_BUILD_TYPE ) OR (CMAKE_BUILD_TYPE STREQUAL "" ))
23
+ if ((NOT DEFINED CMAKE_BUILD_TYPE ) OR (CMAKE_BUILD_TYPE STREQUAL "" ))
23
24
message (STATUS "CMAKE_BUILD_TYPE is empty, use default: Debug" )
24
25
set (CMAKE_BUILD_TYPE Debug )
25
26
endif ()
27
+
26
28
message (STATUS "CMAKE_BUILD_TYPE=" ${CMAKE_BUILD_TYPE} )
27
29
string (COMPARE EQUAL "${CMAKE_BUILD_TYPE} " Debug BUILD_TYPE_DEBUG )
28
30
string (COMPARE EQUAL "${CMAKE_BUILD_TYPE} " Release BUILD_TYPE_RELEASE )
29
31
30
- # Validate the build configuration
31
- if ((NOT BUILD_PLATFORM_WINDOWS )
32
- OR ((NOT BUILD_ARC_X8632 ) AND (NOT BUILD_ARC_X8664 ))
33
- OR ((NOT BUILD_TYPE_DEBUG ) AND (NOT BUILD_TYPE_RELEASE )))
32
+ # Validate the build configuration
33
+ if ((NOT BUILD_PLATFORM_WINDOWS )
34
+ OR ((NOT BUILD_ARC_X8632 ) AND (NOT BUILD_ARC_X8664 ))
35
+ OR ((NOT BUILD_TYPE_DEBUG ) AND (NOT BUILD_TYPE_RELEASE )))
34
36
message (FATAL_ERROR "mmloader supportes only Windows (X86/AMD64) platform." )
35
37
endif ()
36
38
37
39
# Flags
38
40
# C standard
39
- set (CMAKE_C_STANDARD_REQUIRED ON )
41
+ set (CMAKE_C_STANDARD_REQUIRED ON )
40
42
set (CMAKE_C_STANDARD 11 )
41
43
42
44
# C++ standard
@@ -46,11 +48,6 @@ set(CMAKE_CXX_STANDARD 11)
46
48
# Build type
47
49
set (CMAKE_CONFIGURATION_TYPES Debug Release )
48
50
49
- # Default compile flags
50
- # Thanks for the PR https://github.com/microsoft/vcpkg/pull/15151/files from https://github.com/BillyONeal
51
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GS-" )
52
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /GS-" )
53
-
54
51
message (STATUS "CMAKE_CXX_FLAGS=" ${CMAKE_CXX_FLAGS} )
55
52
message (STATUS "CMAKE_CXX_FLAGS_DEBUG=" ${CMAKE_CXX_FLAGS_DEBUG} )
56
53
message (STATUS "CMAKE_CXX_FLAGS_RELEASE=" ${CMAKE_CXX_FLAGS_RELEASE} )
@@ -59,13 +56,14 @@ message(STATUS "CMAKE_C_FLAGS_DEBUG=" ${CMAKE_CXX_FLAGS_DEBUG})
59
56
message (STATUS "CMAKE_C_FLAGS_RELEASE=" ${CMAKE_C_FLAGS_RELEASE} )
60
57
61
58
# Set ouput folder
62
- if (BUILD_ARC_X8632 )
59
+ if (BUILD_ARC_X8632 )
63
60
set (MMLOADER_OUT ${CMAKE_SOURCE_DIR} /output/mmloader/x86 )
64
61
elseif (BUILD_ARC_X8664 )
65
62
set (MMLOADER_OUT ${CMAKE_SOURCE_DIR} /output/mmloader/x64 )
66
63
else ()
67
64
message (FATAL_ERROR "Unsupported Architecture" )
68
65
endif ()
66
+
69
67
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${MMLOADER_OUT} /lib )
70
68
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${MMLOADER_OUT} /lib )
71
69
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${MMLOADER_OUT} /bin )
@@ -76,6 +74,12 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
76
74
# Definitions
77
75
add_definitions (-D_WIN32_WINNT=0x0600 ) # Windows Vista +
78
76
77
+ # Enable debugging for all builds
78
+ add_compile_options (/W3 /Zi /utf-8 )
79
+
80
+ # Enable symbol and map file generation
81
+ add_link_options (/DEBUG /MAP )
82
+
79
83
# Include paths
80
84
include_directories (src/mmloader )
81
85
@@ -88,13 +92,13 @@ add_library(${PROJECT_NAME} STATIC
88
92
# header
89
93
set_target_properties (${PROJECT_NAME}
90
94
PROPERTIES
91
- PUBLIC_HEADER "src/mmloader/mmloader.h"
95
+ PUBLIC_HEADER "src/mmloader/mmloader.h"
92
96
)
93
97
94
98
# Add post build event to copy the header files
95
99
add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
96
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR} /output/mmloader/include
97
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR} /src/mmloader/mmLoader.h ${CMAKE_SOURCE_DIR} /output/mmloader/include/
100
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR} /output/mmloader/include
101
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR} /src/mmloader/mmLoader.h ${CMAKE_SOURCE_DIR} /output/mmloader/include/
98
102
)
99
103
100
104
# install lib and header files
@@ -104,27 +108,27 @@ install(TARGETS ${PROJECT_NAME}
104
108
)
105
109
106
110
# Shellcode generator project
107
- if ((NOT DEFINED BUILD_SHELLCODE_GEN ) OR (BUILD_SHELLCODE_GEN STREQUAL "" ) OR (${BUILD_SHELLCODE_GEN} MATCHES "(FALSE|false|0|OFF)" ))
111
+ if ((NOT DEFINED BUILD_SHELLCODE_GEN ) OR (BUILD_SHELLCODE_GEN STREQUAL "" ) OR (${BUILD_SHELLCODE_GEN} MATCHES "(FALSE|false|0|OFF)" ))
108
112
option (BUILD_SHELLCODE_GEN "Generate the shellcode header files" OFF )
109
113
elseif (${BUILD_SHELLCODE_GEN} MATCHES "(TRUE|true|1|null|ON)" )
110
114
option (BUILD_SHELLCODE_GEN "Generate the shellcode header files" ON )
111
115
else ()
112
116
message (FATAL_ERROR "++++++++++ INVALID FLAG BUILD_SHELLCODE_GEN=" ${BUILD_SHELLCODE_GEN} )
113
117
endif ()
114
118
115
- if (BUILD_SHELLCODE_GEN )
119
+ if (BUILD_SHELLCODE_GEN )
116
120
add_subdirectory (tools/shellcode-generator )
117
121
endif ()
118
122
119
123
# Demo project
120
- if ((NOT DEFINED BUILD_MMLOADER_DEMO ) OR (BUILD_MMLOADER_DEMO STREQUAL "" ) OR (${BUILD_MMLOADER_DEMO} MATCHES "(FALSE|false|0|OFF)" ))
124
+ if ((NOT DEFINED BUILD_MMLOADER_DEMO ) OR (BUILD_MMLOADER_DEMO STREQUAL "" ) OR (${BUILD_MMLOADER_DEMO} MATCHES "(FALSE|false|0|OFF)" ))
121
125
option (BUILD_MMLOADER_DEMO "Build the aps demo" OFF )
122
126
elseif (${BUILD_MMLOADER_DEMO} MATCHES "(TRUE|true|1|null|ON)" )
123
127
option (BUILD_MMLOADER_DEMO "Build the aps demo" ON )
124
128
else ()
125
129
message (FATAL_ERROR "++++++++++ INVALID FLAG BUILD_MMLOADER_DEMO=" ${BUILD_MMLOADER_DEMO} )
126
130
endif ()
127
131
128
- if (BUILD_MMLOADER_DEMO )
129
- add_subdirectory (demo )
130
- endif ()
132
+ if (BUILD_MMLOADER_DEMO )
133
+ add_subdirectory (demo )
134
+ endif ()
0 commit comments