-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlibwdi-1.5.1CMakeLists.txt
130 lines (95 loc) · 6.71 KB
/
libwdi-1.5.1CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
cmake_minimum_required(VERSION 3.15)
project(libwdi)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(ENV{HomeDir} ${CMAKE_CURRENT_LIST_DIR}/out/${CMAKE_SYSTEM_NAME})
set(LIBWDI_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(LIBWDI_TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR}) #CMAKE_SOURCE_DIR
set(LIBWDI_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libwdi)
set(LIBWDI_INC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/msvc ${CMAKE_CURRENT_SOURCE_DIR}/libwdi )
set(LIBWDI_LIB_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/lib) #CMAKE_SOURCE_DIR
set (LIBWDI_DEFS_DEBUG_WIN32_CPPS DEBUG _DEBUG _WIN32 _CRTDBG_MAP_ALLOC _LIB _CRT_SECURE_NO_WARNINGS )
set (LIBWDI_DEFS_DEBUG_X64_CPPS DEBUG _DEBUG _WIN32 _CRTDBG_MAP_ALLOC _WIN64 _LIB _CRT_SECURE_NO_WARNINGS )
set (LIBWDI_DEFS_RELEASE_WIN32_CPPS _WIN32 _LIB _CRT_SECURE_NO_WARNINGS )
set (LIBWDI_DEFS_RELEASE_X64_CPPS _WIN32 _WIN64 _LIB _CRT_SECURE_NO_WARNINGS )
file (GLOB FILTER_CPPS RELATIVE ${LIBWDI_TOP_DIR}
libwdi/embedder.c
libwdi/installer.c
libwdi/libusb0.cat.in
libwdi/libusbk.cat.in
libwdi/usbser.cat.in
libwdi/winusb.cat.in
)
file (GLOB FILTER_HPPS RELATIVE ${LIBWDI_TOP_DIR}
libwdi/embedder.h
)
file (GLOB FILTER__MSVC_HPPS RELATIVE ${LIBWDI_TOP_DIR}
msvc/inttypes.h
msvc/stdint.h
)
file (GLOB LIBWDI_ASM_LIST RELATIVE ${LIBWDI_TOP_DIR}
libwdi/*.asm* msvc/*.asm* )
file (GLOB LIBWDI_INC_LIST RELATIVE ${LIBWDI_TOP_DIR}
libwdi/*.h* msvc/*.h* )
file (GLOB LIBWDI_SRC_LIST RELATIVE ${LIBWDI_TOP_DIR}
libwdi/*.c* msvc/*.c* )
file (GLOB WDI_EMBEDDER_SRC_LIST RELATIVE ${LIBWDI_TOP_DIR}
libwdi/embedder*.c )
file (GLOB WDI_INSTALLER_SRC_LIST RELATIVE ${LIBWDI_TOP_DIR}
libwdi/installer*.c )
list (REMOVE_ITEM LIBWDI_SRC_LIST ${FILTER_CPPS} )
source_group(TREE ${LIBWDI_TOP_DIR} FILES ${LIBWDI_SRC_LIST} )
set (sys_dep_libs setupapi winmm imm32 version crypt32 )
set ( LIBWDI_STATIC libwdi_static )
add_library (${LIBWDI_STATIC} STATIC ${LIBWDI_SRC_LIST} )
target_compile_definitions(${LIBWDI_STATIC} PRIVATE ${LIBWDI_DEF_LIST} HAVE_CONFIG_H)
target_include_directories(${LIBWDI_STATIC} PUBLIC ${LIBWDI_INC_DIRS} )
target_link_directories (${LIBWDI_STATIC} PUBLIC ${LIBWDI_LIB_DIRS} )
target_link_libraries (${LIBWDI_STATIC} ${LIBWDI_DEP_LIBS} ${sys_dep_libs} )
target_compile_options (${LIBWDI_STATIC} PRIVATE /Z7 /W4 )
set_target_properties (${LIBWDI_STATIC} PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME libwdi_static )
set ( LIBWDI_SHARED libwdi_shared )
add_library (${LIBWDI_SHARED} SHARED ${LIBWDI_SRC_LIST} )
target_compile_definitions(${LIBWDI_SHARED} PRIVATE ${LIBWDI_DEF_LIST} HAVE_CONFIG_H )
target_include_directories(${LIBWDI_SHARED} PUBLIC ${LIBWDI_INC_DIRS} )
target_link_directories (${LIBWDI_SHARED} PUBLIC ${LIBWDI_LIB_DIRS} )
target_link_libraries (${LIBWDI_SHARED} ${LIBWDI_DEP_LIBS} ${sys_dep_libs} )
target_compile_options (${LIBWDI_SHARED} PRIVATE /Z7 /W4 )
set_target_properties (${LIBWDI_SHARED} PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME libwdi_shared )
set ( WDI_EMBEDDER_APP wdi_embedder )
add_executable (${WDI_EMBEDDER_APP} ${WDI_EMBEDDER_SRC_LIST} )
target_compile_definitions(${WDI_EMBEDDER_APP} PRIVATE ${WDI_EMBEDDER_DEP_DEFS} ${LIBPCRE_DEFS} )
target_include_directories(${WDI_EMBEDDER_APP} PUBLIC ${WDI_EMBEDDER_INC_DIRS} ${LIBWDI_INC_DIRS} )
target_link_directories (${WDI_EMBEDDER_APP} PUBLIC ${WDI_EMBEDDER_LIB_DIRS} )
#target_link_libraries (${WDI_EMBEDDER_APP} ${LIBWDI_STATIC} ) #
#target_link_libraries (${WDI_EMBEDDER_APP} ${LIBWDI_SHARED} ) #
set ( WDI_INSTALLER_X86_APP wdi_installer_x86)
add_executable (${WDI_INSTALLER_X86_APP} ${WDI_INSTALLER_SRC_LIST} )
target_compile_definitions(${WDI_INSTALLER_X86_APP} PRIVATE ${WDI_INSTALLER_DEP_DEFS} ${LIBPCRE_DEFS} )
target_include_directories(${WDI_INSTALLER_X86_APP} PUBLIC ${WDI_INSTALLER_INC_DIRS} ${LIBWDI_INC_DIRS} )
target_link_directories (${WDI_INSTALLER_X86_APP} PUBLIC ${WDI_INSTALLER_LIB_DIRS} )
target_link_libraries (${WDI_INSTALLER_X86_APP} ${LIBWDI_STATIC} ${sys_dep_libs} newdev ) #
#target_link_libraries (${WDI_INSTALLER_X86_APP} ${LIBWDI_SHARED} ) #
set ( WDI_INSTALLER_X64_APP wdi_installer_x64)
add_executable (${WDI_INSTALLER_X64_APP} ${WDI_INSTALLER_SRC_LIST} )
target_compile_definitions(${WDI_INSTALLER_X64_APP} PRIVATE ${WDI_INSTALLER_DEP_DEFS} ${LIBPCRE_DEFS} )
target_include_directories(${WDI_INSTALLER_X64_APP} PUBLIC ${WDI_INSTALLER_INC_DIRS} )
target_link_directories (${WDI_INSTALLER_X64_APP} PUBLIC ${WDI_INSTALLER_LIB_DIRS} )
target_link_libraries (${WDI_INSTALLER_X64_APP} ${LIBWDI_STATIC} ${sys_dep_libs} newdev ) #
#target_link_libraries (${WDI_INSTALLER_X64_APP} ${LIBWDI_SHARED} ) #
SET(install_targets ${LIBWDI_STATIC} ${LIBWDI_SHARED} ${LIBWDI_APP} ) #
SET(install_hdr_dir include)#
INSTALL(TARGETS ${install_targets}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION ${install_hdr_dir}
)
install(FILES ${LIBWDI_INC_LIST} DESTINATION ${install_hdr_dir})
install(DIRECTORY "inc_sub_dir" DESTINATION ${install_hdr_dir} FILES_MATCHING PATTERN "*.h" )