@@ -1851,14 +1851,7 @@ function(ROOT_ADD_GTEST test_suite)
18511851 set (test_exports "/EXPORT:_Init_thread_abort /EXPORT:_Init_thread_epoch \
18521852 /EXPORT:_Init_thread_footer /EXPORT:_Init_thread_header /EXPORT:_tls_index" )
18531853 set_property (TARGET ${test_suite} APPEND_STRING PROPERTY LINK_FLAGS ${test_exports} )
1854- if (NOT CMAKE_GENERATOR MATCHES Ninja)
1855- foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
1856- string (TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
1857- set_target_properties (${test_suite} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_CURRENT_BINARY_DIR} )
1858- set_target_properties (${test_suite} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_CURRENT_BINARY_DIR} )
1859- set_target_properties (${test_suite} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_CURRENT_BINARY_DIR} )
1860- endforeach (OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
1861- endif ()
1854+ ROOT_SET_OUTPUT_DIRECTORIES(${test_suite} )
18621855 endif ()
18631856
18641857 if (ARG_WILLFAIL)
@@ -2529,6 +2522,7 @@ macro(ROOTTEST_GENERATE_DICTIONARY dictname)
25292522
25302523 set_target_properties (${targetname_libgen} PROPERTIES ${ROOT_LIBRARY_PROPERTIES} )
25312524 set_target_properties (${targetname_libgen} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE )
2525+ ROOT_SET_OUTPUT_DIRECTORIES(${targetname_libgen} )
25322526
25332527 target_link_libraries (${targetname_libgen} ${ROOT_LIBRARIES} )
25342528
@@ -2570,16 +2564,6 @@ macro(ROOTTEST_GENERATE_DICTIONARY dictname)
25702564 FIXTURES_REQUIRED ${ARG_FIXTURES_REQUIRED} )
25712565 endif ()
25722566
2573- if (MSVC AND NOT CMAKE_GENERATOR MATCHES Ninja)
2574- add_custom_command (TARGET ${targetname_libgen} POST_BUILD
2575- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR} /${dictname} _rdict.pcm
2576- ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG>/${dictname} _rdict.pcm
2577- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG>/${dictname} .dll
2578- ${CMAKE_CURRENT_BINARY_DIR} /${dictname} .dll
2579- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG>/${dictname} .lib
2580- ${CMAKE_CURRENT_BINARY_DIR} /${dictname} .lib)
2581- endif ()
2582-
25832567endmacro (ROOTTEST_GENERATE_DICTIONARY)
25842568
25852569#-------------------------------------------------------------------------------
@@ -2631,6 +2615,7 @@ macro(ROOTTEST_GENERATE_REFLEX_DICTIONARY dictionary)
26312615 set_target_properties (${targetname_libgen} PROPERTIES ${ROOT_LIBRARY_PROPERTIES} )
26322616 set_property (TARGET ${targetname_libgen} PROPERTY BUILD_WITH_INSTALL_RPATH OFF ) # will never be installed anyway
26332617 set_target_properties (${targetname_libgen} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE )
2618+ ROOT_SET_OUTPUT_DIRECTORIES(${targetname_libgen} )
26342619
26352620 if (ARG_LIBNAME)
26362621 set_target_properties (${targetname_libgen} PROPERTIES PREFIX "" )
@@ -2687,18 +2672,6 @@ macro(ROOTTEST_GENERATE_REFLEX_DICTIONARY dictionary)
26872672 FIXTURES_REQUIRED ${ARG_FIXTURES_REQUIRED} )
26882673 endif ()
26892674
2690- if (MSVC AND NOT CMAKE_GENERATOR MATCHES Ninja)
2691- if (ARG_LIBNAME)
2692- add_custom_command (TARGET ${targetname_libgen} POST_BUILD
2693- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG>/${ARG_LIBNAME} .dll
2694- ${CMAKE_CURRENT_BINARY_DIR} /${ARG_LIBNAME} .dll)
2695- else ()
2696- add_custom_command (TARGET ${targetname_libgen} POST_BUILD
2697- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG>/lib${dictionary} _dictrflx.dll
2698- ${CMAKE_CURRENT_BINARY_DIR} /lib${dictionary} _dictrflx.dll)
2699- endif ()
2700- endif ()
2701-
27022675endmacro (ROOTTEST_GENERATE_REFLEX_DICTIONARY)
27032676
27042677#-------------------------------------------------------------------------------
@@ -3483,26 +3456,38 @@ function(find_python_module module)
34833456 set (PY_${module_upper} _FOUND ${PY_${module_upper} _FOUND} PARENT_SCOPE)
34843457endfunction ()
34853458
3459+ #---------------------------------------------------------------------------------------------------
3460+ # function ROOT_SET_OUTPUT_DIRECTORIES( <name> )
3461+ #
3462+ # this function simply sets the output directories from the standard outupt directory
3463+ # (CMAKE_CURRENT_BINARY_DIR/$<CONFIG>) to its parent directory (CMAKE_CURRENT_BINARY_DIR) on Windows
3464+ #
3465+ #---------------------------------------------------------------------------------------------------
3466+ function (ROOT_SET_OUTPUT_DIRECTORIES library)
3467+ if (MSVC AND NOT CMAKE_GENERATOR MATCHES Ninja)
3468+ foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
3469+ string (TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
3470+ set_target_properties (${library} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_CURRENT_BINARY_DIR} )
3471+ set_target_properties (${library} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_CURRENT_BINARY_DIR} )
3472+ set_target_properties (${library} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_CURRENT_BINARY_DIR} )
3473+ endforeach (OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
3474+ endif ()
3475+ endfunction ()
3476+
34863477#---------------------------------------------------------------------------------------------------
34873478# function ROOTTEST_LINKER_LIBRARY( <name> source1 source2 ...[TYPE STATIC|SHARED] [DLLEXPORT]
34883479# [NOINSTALL] LIBRARIES library1 library2 ...
34893480# DEPENDENCIES dep1 dep2
34903481# BUILTINS dep1 dep2)
34913482#
3492- # this function simply calls the ROOT function ROOT_LINKER_LIBRARY, and add a POST_BUILD custom
3493- # command to copy the .dll and .lib from the standard config directory (Debug/Release ) to its
3494- # parent directory (CMAKE_CURRENT_BINARY_DIR) on Windows
3483+ # this function simply calls the ROOT function ROOT_LINKER_LIBRARY, and sets the output directories
3484+ # from the standard output directory (CMAKE_CURRENT_BINARY_DIR/$<CONFIG> ) to its parent directory
3485+ # (CMAKE_CURRENT_BINARY_DIR) on Windows
34953486#
34963487#---------------------------------------------------------------------------------------------------
34973488function (ROOTTEST_LINKER_LIBRARY library)
34983489 ROOT_LINKER_LIBRARY(${ARGV} )
3499- if (MSVC AND NOT CMAKE_GENERATOR MATCHES Ninja)
3500- add_custom_command (TARGET ${library} POST_BUILD
3501- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG>/lib${library} .dll
3502- ${CMAKE_CURRENT_BINARY_DIR} /lib${library} .dll
3503- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR} /$<CONFIG>/lib${library} .lib
3504- ${CMAKE_CURRENT_BINARY_DIR} /lib${library} .lib)
3505- endif ()
3490+ ROOT_SET_OUTPUT_DIRECTORIES(${library} )
35063491endfunction ()
35073492
35083493#---------------------------------------------------------------------------------------------------
0 commit comments