chore: structure basic
[KDIS.git] / Examples / Extending / Link16 / CMakeLists.txt
blob45ea4287e1803fe5c566298d195440b0c4bdc058
1 # Link 16 files\r
2 \r
3 # PDU\r
4 SET(PDU_LINK16_DIR KDIS)\r
5 SET(PDU_LINK16_PDU_DIR KDIS/PDU/Link16)\r
6 SET(PDU_LINK16_EXTRAS_DIR KDIS/Extras)\r
7 \r
8 SET(KDIS_SRC_PDU_LINK16\r
9         ${PDU_LINK16_PDU_DIR}/Link16_Transmitter_PDU.h\r
10     ${PDU_LINK16_PDU_DIR}/Link16_Signal_PDU.h\r
11         ${PDU_LINK16_PDU_DIR}/Link16_Transmitter_PDU.cpp\r
12     ${PDU_LINK16_PDU_DIR}/Link16_Signal_PDU.cpp \r
13 )\r
14 # Custom PDU Factory\r
15 SET(KDIS_SRC_EXTRAS_LINK16\r
16         ${PDU_LINK16_EXTRAS_DIR}/PDU_FactoryLink16.h\r
17         ${PDU_LINK16_EXTRAS_DIR}/PDU_FactoryLink16.cpp\r
18 )\r
20 SET(KDIS_SRC_LINK16\r
21         ${PDU_LINK16_DIR}/KDefinesLink16.h\r
22 )\r
24 # Enums\r
25 LIST(APPEND KDIS_SRC_ENUMS\r
26         KDIS/DataTypes/Enums/EnumLink16.cpp\r
27         KDIS/DataTypes/Enums/EnumLink16.h\r
28 )\r
30 # Set up visual studio filters\r
32 # *.h\r
33 SOURCE_GROUP(KDIS FILES ${KDIS_SRC_BASE_H})\r
34 SOURCE_GROUP(KDIS\\DataTypes FILES ${KDIS_SRC_DATATYPES_H})\r
35 SOURCE_GROUP(KDIS\\DataTypes\\Enums FILES ${KDIS_SRC_ENUMS_H})\r
36 SOURCE_GROUP(KDIS\\PDU FILES ${KDIS_SRC_PDU_BASE_H})\r
37 SOURCE_GROUP(KDIS\\PDU\\Distributed_Emission_Regeneration FILES ${KDIS_SRC_PDU_DER_H})\r
38 SOURCE_GROUP(KDIS\\PDU\\Entity_Info_Interaction FILES ${KDIS_SRC_PDU_EII_H})\r
39 SOURCE_GROUP(KDIS\\PDU\\Entity_Management FILES ${KDIS_SRC_PDU_EM_H})\r
40 SOURCE_GROUP(KDIS\\PDU\\Live_Entity FILES ${KDIS_SRC_PDU_LE_H})\r
41 SOURCE_GROUP(KDIS\\PDU\\Logistics FILES ${KDIS_SRC_PDU_L_H})\r
42 SOURCE_GROUP(KDIS\\PDU\\Minefield FILES ${KDIS_SRC_PDU_M_H})\r
43 SOURCE_GROUP(KDIS\\PDU\\Radio_Communications FILES ${KDIS_SRC_PDU_R_H})\r
44 SOURCE_GROUP(KDIS\\PDU\\Simulation_Management FILES ${KDIS_SRC_PDU_SM_H})\r
45 SOURCE_GROUP(KDIS\\PDU\\Simulation_Management_With_Reliability FILES ${KDIS_SRC_PDU_SMWR_H})\r
46 SOURCE_GROUP(KDIS\\PDU\\Synthetic_Environment FILES ${KDIS_SRC_PDU_SE_H})\r
47 SOURCE_GROUP(KDIS\\PDU\\Warfare FILES ${KDIS_SRC_PDU_W_H})\r
48 SOURCE_GROUP(KDIS\\PDU\\Information_Operations FILES ${KDIS_SRC_PDU_IO_H})\r
49 SOURCE_GROUP(KDIS\\Extras FILES ${KDIS_SRC_EX_H})\r
50 SOURCE_GROUP(KDIS\\Network FILES ${KDIS_SRC_NET_H})\r
52 # Link 16\r
53 SOURCE_GROUP(KDIS FILES ${KDIS_SRC_LINK16})\r
54 SOURCE_GROUP(KDIS\\PDU\\Link16 FILES ${KDIS_SRC_PDU_LINK16})\r
55 SOURCE_GROUP(KDIS\\DataTypes\\Enums FILES ${KDIS_SRC_ENUMS})\r
56 SOURCE_GROUP(KDIS\\Extras FILES ${KDIS_SRC_EXTRAS_LINK16})\r
58 # *.cpp\r
59 SOURCE_GROUP(KDIS FILES ${KDIS_SRC_BASE_CPP})\r
60 SOURCE_GROUP(KDIS\\DataTypes FILES ${KDIS_SRC_DATATYPES_CPP})\r
61 SOURCE_GROUP(KDIS\\DataTypes\\Enums FILES ${KDIS_SRC_ENUMS_CPP})\r
62 SOURCE_GROUP(KDIS\\PDU FILES ${KDIS_SRC_PDU_BASE_CPP})\r
63 SOURCE_GROUP(KDIS\\PDU\\Distributed_Emission_Regeneration FILES ${KDIS_SRC_PDU_DER_CPP})\r
64 SOURCE_GROUP(KDIS\\PDU\\Entity_Info_Interaction FILES ${KDIS_SRC_PDU_EII_CPP})\r
65 SOURCE_GROUP(KDIS\\PDU\\Entity_Management FILES ${KDIS_SRC_PDU_EM_CPP})\r
66 SOURCE_GROUP(KDIS\\PDU\\Live_Entity FILES ${KDIS_SRC_PDU_LE_CPP})\r
67 SOURCE_GROUP(KDIS\\PDU\\Logistics FILES ${KDIS_SRC_PDU_L_CPP})\r
68 SOURCE_GROUP(KDIS\\PDU\\Minefield FILES ${KDIS_SRC_PDU_M_CPP})\r
69 SOURCE_GROUP(KDIS\\PDU\\Radio_Communications FILES ${KDIS_SRC_PDU_R_CPP})\r
70 SOURCE_GROUP(KDIS\\PDU\\Simulation_Management FILES ${KDIS_SRC_PDU_SM_CPP})\r
71 SOURCE_GROUP(KDIS\\PDU\\Simulation_Management_With_Reliability FILES ${KDIS_SRC_PDU_SMWR_CPP})\r
72 SOURCE_GROUP(KDIS\\PDU\\Synthetic_Environment FILES ${KDIS_SRC_PDU_SE_CPP})\r
73 SOURCE_GROUP(KDIS\\PDU\\Warfare FILES ${KDIS_SRC_PDU_W_CPP})\r
74 SOURCE_GROUP(KDIS\\PDU\\Information_Operations FILES ${KDIS_SRC_PDU_IO_CPP})\r
75 SOURCE_GROUP(KDIS\\Extras FILES ${KDIS_SRC_EX_CPP})\r
76 SOURCE_GROUP(KDIS\\Network FILES ${KDIS_SRC_NET_CPP})\r
78 #Include directories in project settings\r
79 INCLUDE_DIRECTORIES(${KDIS_SOURCE_DIR})\r
80 INCLUDE_DIRECTORIES(${KDIS_SOURCE_DIR}/Examples)\r
82 #Create the project\r
84 SET(KDIS_FILES_H\r
85     ${KDIS_SRC_BASE_H} \r
86     ${KDIS_SRC_DATATYPES_H} \r
87     ${KDIS_SRC_ENUMS_H}\r
88     ${KDIS_SRC_PDU_BASE_H}\r
89     ${KDIS_SRC_PDU_DER_H}\r
90     ${KDIS_SRC_PDU_EII_H}\r
91     ${KDIS_SRC_PDU_EM_H}\r
92     ${KDIS_SRC_PDU_LE_H}\r
93     ${KDIS_SRC_PDU_L_H}\r
94         ${KDIS_SRC_PDU_M_H}\r
95     ${KDIS_SRC_PDU_R_H}\r
96     ${KDIS_SRC_PDU_SM_H}\r
97     ${KDIS_SRC_PDU_SMWR_H}\r
98     ${KDIS_SRC_PDU_SE_H}\r
99     ${KDIS_SRC_PDU_W_H}\r
100         ${KDIS_SRC_PDU_IO_H}\r
101     ${KDIS_SRC_EX_H}\r
102         ${KDIS_SRC_NET_H}\r
103         ${KDIS_SRC_LINK16}\r
104         ${KDIS_SRC_PDU_LINK16}\r
105         ${KDIS_SRC_EXTRAS_LINK16}\r
106         ${KDIS_SRC_ENUMS}\r
107     KDIS.cpp\r
110 IF(NOT BUILD_EXAMPLES_TO_LINK_TO_LIB)\r
112 SET(KDIS_FILES_CPP\r
113     ${KDIS_SRC_BASE_CPP} \r
114     ${KDIS_SRC_DATATYPES_CPP}\r
115     ${KDIS_SRC_ENUMS_CPP}\r
116     ${KDIS_SRC_PDU_BASE_CPP}\r
117     ${KDIS_SRC_PDU_DER_CPP}\r
118     ${KDIS_SRC_PDU_EII_CPP}\r
119     ${KDIS_SRC_PDU_EM_CPP}\r
120     ${KDIS_SRC_PDU_LE_CPP}\r
121     ${KDIS_SRC_PDU_L_CPP}\r
122         ${KDIS_SRC_PDU_M_CPP}\r
123     ${KDIS_SRC_PDU_R_CPP}\r
124     ${KDIS_SRC_PDU_SM_CPP}\r
125     ${KDIS_SRC_PDU_SMWR_CPP}\r
126     ${KDIS_SRC_PDU_SE_CPP}\r
127     ${KDIS_SRC_PDU_W_CPP}\r
128         ${KDIS_SRC_PDU_IO_CPP}\r
129     ${KDIS_SRC_EX_CPP}\r
130         ${KDIS_SRC_NET_CPP}     \r
133 ENDIF(NOT BUILD_EXAMPLES_TO_LINK_TO_LIB)\r
135 SET(KDIS_FILES ${KDIS_FILES_CPP} ${KDIS_FILES_H} )\r
137 SET(BIN_NAME Link16_DLL)\r
139 ADD_LIBRARY(${BIN_NAME} ${KDIS_FILES})\r
141 SET_PROPERTY(TARGET ${BIN_NAME} PROPERTY FOLDER "Examples/Extending")\r
143 #Lower the warning level\r
144 IF(MSVC)\r
145     ADD_DEFINITIONS(/W1)\r
146 ENDIF(MSVC)\r
148 IF(BUILD_EXAMPLES_TO_LINK_TO_LIB)\r
150     IF(EXAMPLES_USE_STATIC_OR_SHARED_LIB MATCHES STATIC)\r
151         TARGET_LINK_LIBRARIES(${BIN_NAME} KDIS_LIB)\r
152     ENDIF(EXAMPLES_USE_STATIC_OR_SHARED_LIB MATCHES STATIC)\r
153     \r
154     IF(EXAMPLES_USE_STATIC_OR_SHARED_LIB MATCHES SHARED)\r
155         TARGET_LINK_LIBRARIES(${BIN_NAME} KDIS_DLL)\r
156         ADD_DEFINITIONS(-D "IMPORT_KDIS")\r
157     ENDIF(EXAMPLES_USE_STATIC_OR_SHARED_LIB MATCHES SHARED)\r
158     \r
159 ENDIF(BUILD_EXAMPLES_TO_LINK_TO_LIB)\r
161 ADD_DEFINITIONS(-D "EXPORT_KDIS_LINK16") ## Build a dll version of the example\r
163 IF(DIS_VERSION MATCHES 6)\r
164         ADD_DEFINITIONS(-D "DIS_VERSION=6")\r
165 ENDIF(DIS_VERSION MATCHES 6)\r
167 IF(DIS_VERSION MATCHES 5)\r
168         ADD_DEFINITIONS(-D "DIS_VERSION=5")\r
169 ENDIF(DIS_VERSION MATCHES 5)\r
171 IF(DIS_VERSION MATCHES 7)\r
172         ADD_DEFINITIONS(-D "DIS_VERSION=7")\r
173 ENDIF(DIS_VERSION MATCHES 7)\r
175 IF(KDIS_USE_ENUM_DESCRIPTORS)\r
176         ADD_DEFINITIONS(-D "KDIS_USE_ENUM_DESCRIPTORS")\r
177 ENDIF(KDIS_USE_ENUM_DESCRIPTORS) \r
179 TARGET_LINK_LIBRARIES(${BIN_NAME} ${RT_LIBRARY})\r