-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.cmake_windows.cmake
More file actions
130 lines (108 loc) · 3.61 KB
/
.cmake_windows.cmake
File metadata and controls
130 lines (108 loc) · 3.61 KB
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
set( EXEC incaribus )
set( EXT cpp )
add_definitions(-DYAML_CPP_STATIC_DEFINE)
if (${CMAKE_BUILD_TYPE} STREQUAL Debug)
set(DEBUG_SUFFIX "d")
else()
set(DEBUG_SUFFIX "")
endif()
## IMPORTED SHARED LIBRARY NAME
set( SHARED_LIB_NAME
Jsnp
SWEngine-OpenGLModule${DEBUG_SUFFIX}
glfw
sndfile
freetype
)
## IMPORTED SHARED LIBRARY LOCATION
set( SHARED_LIB_LOCATION
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/Jsnp.dll
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/SWEngine-OpenGLModule${DEBUG_SUFFIX}.dll
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/glfw3.dll
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/sndfile.dll
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/freetype.dll
)
## IMPORTED SHARED LIBRARY lib file
set( SHARED_LIB
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/Jsnp.lib
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/SWEngine-OpenGLModule${DEBUG_SUFFIX}.lib
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/glfw3.lib
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/sndfile.lib
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/freetype.lib
)
### IMPORTED STATIC LIBRARY NAME
set( STATIC_LIB_NAME
yaml-cpp${DEBUG_SUFFIX}
)
## IMPORTED STATIC LIBRARY .lib file
set( STATIC_LIB
${CMAKE_SOURCE_DIR}/libraries/${CMAKE_BUILD_TYPE}/yaml-cpp${DEBUG_SUFFIX}.lib
)
## <=====================================>
## GET SOURCES
## <=====================================>
foreach(filePath ${SRC_FOLDERS})
string(APPEND TMP "${filePath}*.${EXT};")
endforeach()
file(GLOB SRC ${TMP})
## <=====================================>
## OUTPUT
## <=====================================>
## EXECUTABLE
add_executable(${EXEC} ${SRC})
## or SHARED LIB
# add_library(${EXEC} SHARED ${SRC})
## or STATIC LIB
# add_library(${EXEC} STATIC ${SRC})
## <=====================================>
## ADD INCLUDES
## <=====================================>
target_include_directories(${EXEC} PRIVATE ${INC_FOLDERS})
## <=====================================>
## ADD PARAMETER
## <=====================================>
if (UNIX)
target_compile_options(${EXEC} PRIVATE -g3)
endif (UNIX)
## <=====================================>
## SHARED LIBRARY LINKING
## <=====================================>
list(LENGTH SHARED_LIB_NAME list_len)
math(EXPR LIST_LEN "${list_len} - 1")
foreach(ctr RANGE ${LIST_LEN})
list(GET SHARED_LIB_NAME ${ctr} lib)
list(GET SHARED_LIB_LOCATION ${ctr} loc)
list(GET SHARED_LIB ${ctr} filelib)
add_library(${lib} SHARED IMPORTED)
file(COPY ${loc} DESTINATION ${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}/)
set_target_properties(${lib} PROPERTIES
IMPORTED_LOCATION ${loc}
IMPORTED_IMPLIB ${filelib}
)
endforeach()
target_link_libraries(${EXEC}
PUBLIC
${SHARED_LIB_NAME}
)
## <=====================================>
## STATIC LIBRARY LINKING
## <=====================================>
list(LENGTH STATIC_LIB_NAME list_len)
math(EXPR LIST_LEN "${list_len} - 1")
foreach(ctr RANGE ${LIST_LEN})
list(GET STATIC_LIB_NAME ${ctr} lib)
list(GET STATIC_LIB ${ctr} filelib)
message(${filelib})
add_library(${lib} STATIC IMPORTED)
set_target_properties(${lib} PROPERTIES
IMPORTED_LOCATION ${filelib}
)
endforeach()
target_link_libraries(${EXEC}
PUBLIC
${STATIC_LIB_NAME}
)
## <=====================================>
## PACKAGE LINKING
## <=====================================>
## <=====================================>