@@ -27,6 +27,17 @@ source_group("SourceFiles" FILES ${IGA_EXE_CPP})
27
27
28
28
set (IGA_EXE_DEFINITIONS _CONSOLE _LIB ${GED_BRANCH} )
29
29
30
+ if (MSVC )
31
+ add_compile_options (/EHsc )
32
+ else (MSVC )
33
+ add_compile_options (-fexceptions )
34
+ endif (MSVC )
35
+
36
+ if (IGC_BUILD AND MSVC )
37
+ Set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IGC_BUILD__TOOLS_OUTPUT_DIR} )
38
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IGC_BUILD__TOOLS_OUTPUT_DIR} )
39
+ endif (IGC_BUILD AND MSVC )
40
+
30
41
add_executable (IGA_EXE ${IGA_EXE_CPP} ${IGA_EXE_HPP} )
31
42
if (MSVC_GENERATOR )
32
43
# Due to all files being built in same directory (see upper-level cmake)
@@ -67,6 +78,25 @@ else()
67
78
set (IGA_EXE_LINK_FLAGS "" )
68
79
endif ()
69
80
81
+ if (IGC_BUILD )
82
+ if (MSVC )
83
+ # Set up standard defines from the common WDK path.
84
+ # Without calling bs_set_wdk(), we might be getting these errors randomly between builds
85
+ # error MSB4064: The "SpectreMitigation" parameter is not supported by the "CL" task.
86
+ # error MSB4063: The "CL" task could not be initialized with its input parameters.
87
+ bs_set_wdk (IGA_EXE )
88
+ add_custom_command ( TARGET IGA_EXE
89
+ POST_BUILD
90
+ COMMAND "${CMAKE_COMMAND} " -E copy $< TARGET_FILE:IGA_EXE> $< TARGET_FILE_DIR:IGA_DLL>
91
+ COMMAND "${CMAKE_COMMAND} " -E copy $< TARGET_PDB_FILE:IGA_EXE> $< TARGET_FILE_DIR:IGA_DLL>
92
+ )
93
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "" )
94
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "" )
95
+ elseif (UNIX )
96
+ install (TARGETS IGA_EXE DESTINATION ${IGC_INSTALL_TIME_ROOT_DIR} /bin COMPONENT igc-media )
97
+ endif (MSVC )
98
+ endif (IGC_BUILD )
99
+
70
100
# Set release build specific defines
71
101
set_target_properties ( IGA_EXE PROPERTIES
72
102
OUTPUT_NAME "iga${TARGET_MODIFIER} "
0 commit comments