| 13 | if ( WIN32 ) |
| 14 | # Define where the DLLs will be copied after building them. This path has |
| 15 | # to be passed as a preprocessor definition when building AimsunDS so that |
| 16 | # the resulting executable will know where to look for DLL files. |
| 17 | set ( DLL_DIRECTORY "${CMAKE_SOURCE_DIR}/aimsun_bdm/dlls" ) |
| 18 | set ( ELS_DIRECTORY "${CMAKE_SOURCE_DIR}/aimsun_bdm/els3" ) |
| 19 | # Define macro for copying the DLLs to DLL_DIRECTORY |
| 20 | # This is not very pretty ... we need to use different DLL names |
| 21 | # for Debug and Release versions of the code and CMake does not offer |
| 22 | # any property or variable that would reflect the proper target library |
| 23 | # name. Hence, we have to use Visual Studio macros. Aaaarrrgggh. |
| 24 | macro ( copydll DLL_TARGET DLL_DIR ) |
| 25 | add_custom_command ( |
| 26 | TARGET ${DLL_TARGET} |
| 27 | POST_BUILD |
| 28 | COMMENT "Saving a copy of the ${DLL_TARGET} DLL to ${DLL_DIR} ..." |
| 29 | COMMAND echo md "${DLL_DIR}" |
| 30 | COMMAND ${CMAKE_COMMAND} -E make_directory "${DLL_DIR}" |
| 31 | COMMAND echo copy "$(TargetPath)" "${DLL_DIR}" |
| 32 | COMMAND ${CMAKE_COMMAND} -E copy "$(TargetPath)" "${DLL_DIR}" |
| 33 | VERBATIM |
| 34 | ) |
| 35 | endmacro ( copydll ) |
| 36 | endif ( WIN32 ) |
| 37 | |
22 | | include_directories ( aimsun_bdm/eh_api aimsun_bdm/els3/include aimsun_bdm/vgs_api ) |
23 | | # executable |
24 | | EXEC(main_loop traffic_agents aimsun_bdm eh_api vgs_api) |
| 47 | include_directories ( aimsun_bdm/eh_api aimsun_bdm/els3/include aimsun_bdm/vgs_api ) |
| 48 | # executable |
| 49 | exec ( main_loop traffic_agents aimsun_bdm eh_api vgs_api ) |
| 50 | # Delay load the following DLL libraries. Some of them will not be linked at all, |
| 51 | # unfortunately we have no means to determine if we are building a Debug or Release |
| 52 | # version - have we have to specify all possible DLL versions. |
| 53 | set_property ( |
| 54 | TARGET main_loop |
| 55 | PROPERTY LINK_FLAGS "/DELAYLOAD:eh_api.dll /DELAYLOAD:eh_apid.dll /DELAYLOAD:vgs_api.dll /DELAYLOAD:vgs_apid.dll" |
| 56 | ) |
| 57 | target_link_libraries ( main_loop Delayimp.lib ) |