diff options
| author | brad kittenbrink <brad@lindenlab.com> | 2009-11-05 12:07:10 -0500 | 
|---|---|---|
| committer | brad kittenbrink <brad@lindenlab.com> | 2009-11-05 12:07:10 -0500 | 
| commit | 797b4e22b3af6d6ff713a3d445f5ed0ab91db69c (patch) | |
| tree | 484e297bb655acea1146ae35d92ed6d7ab50ae09 /indra | |
| parent | 6f6d1314e6f1fe12391391172bffa52c9c08e380 (diff) | |
| parent | 4bff7b085381a514afb7e8546beaac5ad6117f9b (diff) | |
Merge of my DEV-41724/DEV-41725 work with viewer-2-0
normalizing shared library staging on all 3 platforms.  Test executables should
now run in the debugger.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/cmake/Copy3rdPartyLibs.cmake | 391 | ||||
| -rw-r--r-- | indra/cmake/LLAddBuildTest.cmake | 13 | ||||
| -rw-r--r-- | indra/cmake/Linking.cmake | 5 | ||||
| -rw-r--r-- | indra/llcommon/CMakeLists.txt | 13 | 
5 files changed, 415 insertions, 9 deletions
| diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index 4563b59ad2..4fc25dcc24 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -16,7 +16,7 @@ set(cmake_SOURCE_FILES      CARes.cmake      CURL.cmake      CMakeCopyIfDifferent.cmake -    CopyWinLibs.cmake +    Copy3rdPartyLibs.cmake      CSharpMacros.cmake      DBusGlib.cmake      DirectX.cmake diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake new file mode 100644 index 0000000000..b26d4cbefb --- /dev/null +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -0,0 +1,391 @@ +# -*- cmake -*- + +# The copy_win_libs folder contains file lists and a script used to +# copy dlls, exes and such needed to run the SecondLife from within +# VisualStudio. + +include(CMakeCopyIfDifferent) + +################################################################### +# set up platform specific lists of files that need to be copied +################################################################### +if(WINDOWS) +    set(SHARED_LIB_STAGING_DIR_DEBUG            "${SHARED_LIB_STAGING_DIR}/Debug") +    set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO   "${SHARED_LIB_STAGING_DIR}/RelWithDebInfo") +    set(SHARED_LIB_STAGING_DIR_RELEASE          "${SHARED_LIB_STAGING_DIR}/Release") + +    #******************************* +    # VIVOX - *NOTE: no debug version +    set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-win32") +    set(vivox_files +        SLVoice.exe +        alut.dll +        vivoxsdk.dll +        ortp.dll +        wrap_oal.dll +        ) + +    #******************************* +    # Misc shared libs  + +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug") +    set(debug_files +        openjpegd.dll +        libtcmalloc_minimal-debug.dll +        libapr-1.dll +        libaprutil-1.dll +        libapriconv-1.dll +        ) + +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release") +    set(release_files +        openjpeg.dll +        libtcmalloc_minimal.dll +        libapr-1.dll +        libaprutil-1.dll +        libapriconv-1.dll +        ) + +    if (FMOD_SDK_DIR) +        set(fmod_files fmod.dll) +    endif (FMOD_SDK_DIR) + +    #******************************* +    # LLKDU +    set(internal_llkdu_path "${CMAKE_SOURCE_DIR}/llkdu") +    if(NOT EXISTS ${internal_llkdu_path}) +        if (EXISTS "${debug_src_dir}/llkdu.dll") +            set(debug_llkdu_src "${debug_src_dir}/llkdu.dll") +            set(debug_llkdu_dst "${SHARED_LIB_STAGING_DIR_DEBUG}/llkdu.dll") +        endif (EXISTS "${debug_src_dir}/llkdu.dll") + +        if (EXISTS "${release_src_dir}/llkdu.dll") +            set(release_llkdu_src "${release_src_dir}/llkdu.dll") +            set(release_llkdu_dst "${SHARED_LIB_STAGING_DIR_RELEASE}/llkdu.dll") +            set(relwithdebinfo_llkdu_dst "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}/llkdu.dll") +        endif (EXISTS "${release_src_dir}/llkdu.dll") +    endif (NOT EXISTS ${internal_llkdu_path}) + +#******************************* +# Copy MS C runtime dlls, required for packaging. +# *TODO - Adapt this to support VC9 +if (MSVC80) +    FIND_PATH(debug_msvc8_redist_path msvcr80d.dll +        PATHS +         [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT +        NO_DEFAULT_PATH +        NO_DEFAULT_PATH +        ) + +    if(EXISTS ${debug_msvc8_redist_path}) +        set(debug_msvc8_files +            msvcr80d.dll +            msvcp80d.dll +            Microsoft.VC80.DebugCRT.manifest +            ) + +        copy_if_different( +            ${debug_msvc8_redist_path} +            "${SHARED_LIB_STAGING_DIR_DEBUG}" +            out_targets +            ${debug_msvc8_files} +            ) +        set(third_party_targets ${third_party_targets} ${out_targets}) + +    endif (EXISTS ${debug_msvc8_redist_path}) + +    FIND_PATH(release_msvc8_redist_path msvcr80.dll +        PATHS +         [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC80.CRT +        NO_DEFAULT_PATH +        NO_DEFAULT_PATH +        ) + +    if(EXISTS ${release_msvc8_redist_path}) +        set(release_msvc8_files +            msvcr80.dll +            msvcp80.dll +            Microsoft.VC80.CRT.manifest +            ) + +        copy_if_different( +            ${release_msvc8_redist_path} +            "${SHARED_LIB_STAGING_DIR_RELEASE}" +            out_targets +            ${release_msvc8_files} +            ) +        set(third_party_targets ${third_party_targets} ${out_targets}) + +        copy_if_different( +            ${release_msvc8_redist_path} +            "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}" +            out_targets +            ${release_msvc8_files} +            ) +        set(third_party_targets ${third_party_targets} ${out_targets}) +           +    endif (EXISTS ${release_msvc8_redist_path}) +endif (MSVC80) + +elseif(DARWIN) +    set(SHARED_LIB_STAGING_DIR_DEBUG            "${SHARED_LIB_STAGING_DIR}/Debug/Resources") +    set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO   "${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/Resources") +    set(SHARED_LIB_STAGING_DIR_RELEASE          "${SHARED_LIB_STAGING_DIR}/Release/Resources") + +    set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/universal-darwin") +    set(vivox_files +        SLVoice +        libalut.dylib +        libopenal.dylib +        libortp.dylib +        libvivoxsdk.dylib +       ) +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_debug") +    set(debug_files +       ) +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release") +    set(release_files +        libapr-1.0.3.7.dylib +        libapr-1.0.3.8.dylib +        libapr-1.dylib +        libaprutil-1.0.3.8.dylib +        libaprutil-1.0.3.9.dylib +        libaprutil-1.dylib +        libexpat.0.5.0.dylib +        libexpat.dylib +        libllqtwebkit.dylib +        libndofdev.dylib +       ) + +    # fmod is statically linked on darwin +    set(fmod_files "") + +    #******************************* +    # LLKDU +    set(internal_llkdu_path "${CMAKE_SOURCE_DIR}/llkdu") +    if(NOT EXISTS ${internal_llkdu_path}) +        if (EXISTS "${debug_src_dir}/libllkdu.dylib") +            set(debug_llkdu_src "${debug_src_dir}/libllkdu.dylib") +            set(debug_llkdu_dst "${SHARED_LIB_STAGING_DIR_DEBUG}/libllkdu.dylib") +        endif (EXISTS "${debug_src_dir}/libllkdu.dylib") + +        if (EXISTS "${release_src_dir}/libllkdu.dylib") +            set(release_llkdu_src "${release_src_dir}/libllkdu.dylib") +            set(release_llkdu_dst "${SHARED_LIB_STAGING_DIR_RELEASE}/libllkdu.dylib") +            set(relwithdebinfo_llkdu_dst "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}/libllkdu.dylib") +        endif (EXISTS "${release_src_dir}/libllkdu.dylib") +    endif (NOT EXISTS ${internal_llkdu_path}) +elseif(LINUX) +    # linux is weird, multiple side by side configurations aren't supported +    # and we don't seem to have any debug shared libs built yet anyways... +    set(SHARED_LIB_STAGING_DIR_DEBUG            "${SHARED_LIB_STAGING_DIR}") +    set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO   "${SHARED_LIB_STAGING_DIR}") +    set(SHARED_LIB_STAGING_DIR_RELEASE          "${SHARED_LIB_STAGING_DIR}") + +    set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux") +    set(vivox_files +        libalut.so +        libopenal.so.1 +        libortp.so +        libvivoxsdk.so +        SLVoice +       ) +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib_debug") +    set(debug_files +       ) +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib_release_client") +    # *FIX - figure out what to do with duplicate libalut.so here -brad +    set(release_files +        libapr-1.so.0 +        libaprutil-1.so.0 +        libatk-1.0.so +        libcrypto.so +        libdb-4.2.so +        libexpat.so +        libgmock_main.so +        libgmock.so.0 +        libgmodule-2.0.so +        libgobject-2.0.so +        libgtest_main.so +        libgtest.so.0 +        libopenal.so +        libopenjpeg.so +        libssl.so +        libstacktrace.so +        libtcmalloc.so +        libuuid.so +        libz.so +        libssl.so.0.9.7 +       ) + +    if (FMOD_SDK_DIR) +        set(fmod_files "libfmod-3.75.so") +    endif (FMOD_SDK_DIR) + +    #******************************* +    # LLKDU +    set(internal_llkdu_path "${CMAKE_SOURCE_DIR}/llkdu") +    if(NOT EXISTS ${internal_llkdu_path}) +        if (EXISTS "${debug_src_dir}/libllkdu.so") +            set(debug_llkdu_src "${debug_src_dir}/libllkdu.so") +            set(debug_llkdu_dst "${SHARED_LIB_STAGING_DIR_DEBUG}/libllkdu.so") +        endif (EXISTS "${debug_src_dir}/libllkdu.so") + +        if (EXISTS "${release_src_dir}/libllkdu.so") +            set(release_llkdu_src "${release_src_dir}/libllkdu.so") +            set(release_llkdu_dst "${SHARED_LIB_STAGING_DIR_RELEASE}/libllkdu.so") +            set(relwithdebinfo_llkdu_dst "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}/libllkdu.so") +        endif (EXISTS "${release_src_dir}/libllkdu.so") +    endif(NOT EXISTS ${internal_llkdu_path}) +else(WINDOWS) +    message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...") +    set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux") +    set(vivox_files "") +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/debug") +    set(debug_files "") +    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables +    # or ARCH_PREBUILT_DIRS +    set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/release") +    set(release_files "") + +    set(fmod_files "") + +    set(debug_llkdu_src "") +    set(debug_llkdu_dst "") +    set(release_llkdu_src "") +    set(release_llkdu_dst "") +    set(relwithdebinfo_llkdu_dst "") +endif(WINDOWS) + + +################################################################ +# Done building the file lists, now set up the copy commands. +################################################################ + +copy_if_different( +    ${vivox_src_dir} +    "${SHARED_LIB_STAGING_DIR_DEBUG}" +    out_targets  +   ${vivox_files} +    ) +set(third_party_targets ${third_party_targets} ${out_targets}) + +copy_if_different( +    ${vivox_src_dir} +    "${SHARED_LIB_STAGING_DIR_RELEASE}" +    out_targets +    ${vivox_files} +    ) +set(third_party_targets ${third_party_targets} ${out_targets}) + +copy_if_different( +    ${vivox_src_dir} +    "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}" +    out_targets +    ${vivox_files} +    ) +set(third_party_targets ${third_party_targets} ${out_targets}) + + + +copy_if_different( +    ${debug_src_dir} +    "${SHARED_LIB_STAGING_DIR_DEBUG}" +    out_targets +    ${debug_files} +    ) +set(third_party_targets ${third_party_targets} ${out_targets}) + +copy_if_different( +    ${release_src_dir} +    "${SHARED_LIB_STAGING_DIR_RELEASE}" +    out_targets +    ${release_files} +    ) +set(third_party_targets ${third_party_targets} ${out_targets}) + +copy_if_different( +    ${release_src_dir} +    "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}" +    out_targets +    ${release_files} +    ) +set(third_party_targets ${third_party_targets} ${out_targets}) + +if (FMOD_SDK_DIR) +    copy_if_different( +        ${FMOD_SDK_DIR}  +        "${CMAKE_CURRENT_BINARY_DIR}/Debug" +        out_targets  +        ${fmod_files} +        ) +    set(all_targets ${all_targets} ${out_targets}) +    copy_if_different( +        ${FMOD_SDK_DIR}  +        "${CMAKE_CURRENT_BINARY_DIR}/Release" +        out_targets  +        ${fmod_files} +        ) +    set(all_targets ${all_targets} ${out_targets}) +    copy_if_different( +        ${FMOD_SDK_DIR}  +        "${CMAKE_CURRENT_BINARY_DIR}/RelWithDbgInfo" +        out_targets  +        ${fmod_files} +        ) +    set(all_targets ${all_targets} ${out_targets}) +endif (FMOD_SDK_DIR) + +#******************************* +# LLKDU +set(internal_llkdu_path "${CMAKE_SOURCE_DIR}/llkdu") +if(NOT EXISTS ${internal_llkdu_path}) +    if (EXISTS "${debug_llkdu_src}") +        ADD_CUSTOM_COMMAND( +            OUTPUT  ${debug_llkdu_dst} +            COMMAND ${CMAKE_COMMAND} -E copy_if_different ${debug_llkdu_src} ${debug_llkdu_dst} +            DEPENDS ${debug_llkdu_src} +            COMMENT "Copying llkdu.dll ${SHARED_LIB_STAGING_DIR_DEBUG}" +            ) +        set(third_party_targets ${third_party_targets} $} ${debug_llkdu_dst}) +    endif (EXISTS "${debug_llkdu_src}") + +    if (EXISTS "${release_llkdu_src}") +        ADD_CUSTOM_COMMAND( +            OUTPUT  ${release_llkdu_dst} +            COMMAND ${CMAKE_COMMAND} -E copy_if_different ${release_llkdu_src} ${release_llkdu_dst} +            DEPENDS ${release_llkdu_src} +            COMMENT "Copying llkdu.dll ${SHARED_LIB_STAGING_DIR_RELEASE}" +            ) +        set(third_party_targets ${third_party_targets} ${release_llkdu_dst}) + +        ADD_CUSTOM_COMMAND( +            OUTPUT  ${relwithdebinfo_llkdu_dst} +            COMMAND ${CMAKE_COMMAND} -E copy_if_different ${release_llkdu_src} ${relwithdebinfo_llkdu_dst} +            DEPENDS ${release_llkdu_src} +            COMMENT "Copying llkdu.dll ${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}" +            ) +        set(third_party_targets ${third_party_targets} ${relwithdebinfo_llkdu_dst}) +    endif (EXISTS "${release_llkdu_src}") + +endif (NOT EXISTS ${internal_llkdu_path}) + + +add_custom_target(stage_third_party_libs ALL +  DEPENDS  +    ${third_party_targets} +  ) diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index d8f64199cf..bf4d9b72a9 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -107,6 +107,8 @@ INCLUDE(GoogleMock)      # Setup target      ADD_EXECUTABLE(PROJECT_${project}_TEST_${name} ${${name}_test_SOURCE_FILES}) +    SET_TARGET_PROPERTIES(PROJECT_${project}_TEST_${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXE_STAGING_DIR}) +      #      # Per-codefile additional / external project dep and lib dep property extraction      # @@ -142,8 +144,10 @@ INCLUDE(GoogleMock)      IF(WINDOWS)        set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}) +    ELSEIF(DARWIN) +      set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources:/usr/lib)      ELSE(WINDOWS) -      set(LD_LIBRARY_PATH ${ARCH_PREBUILT_DIRS}:${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}:/usr/lib) +      set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}:/usr/lib)      ENDIF(WINDOWS)      LL_TEST_COMMAND("${LD_LIBRARY_PATH}" ${TEST_CMD}) @@ -200,6 +204,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST      message(STATUS "ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})")    endif(TEST_DEBUG)    ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files}) +  SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXE_STAGING_DIR})    # Add link deps to the executable    if(TEST_DEBUG) @@ -230,8 +235,10 @@ FUNCTION(LL_ADD_INTEGRATION_TEST    IF(WINDOWS)      set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}) +  ELSEIF(DARWIN) +    set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources:/usr/lib)    ELSE(WINDOWS) -    set(LD_LIBRARY_PATH ${ARCH_PREBUILT_DIRS}:${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}:/usr/lib) +    set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}:/usr/lib)    ENDIF(WINDOWS)    LL_TEST_COMMAND("${LD_LIBRARY_PATH}" ${test_command}) @@ -250,4 +257,4 @@ FUNCTION(LL_ADD_INTEGRATION_TEST    # Use CTEST? Not sure how to yet...    # ADD_TEST(INTEGRATION_TEST_RUNNER_${testname} ${TEST_SCRIPT_CMD}) -ENDFUNCTION(LL_ADD_INTEGRATION_TEST)
\ No newline at end of file +ENDFUNCTION(LL_ADD_INTEGRATION_TEST) diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index 1f3553539f..bca99caf2a 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -6,6 +6,7 @@ if (NOT STANDALONE)      set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/release)      set(ARCH_PREBUILT_DIRS_DEBUG ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/debug)      set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged DLLs") +    set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged executables")    elseif (LINUX)      if (VIEWER)        set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release_client) @@ -14,12 +15,14 @@ if (NOT STANDALONE)      endif (VIEWER)      set(ARCH_PREBUILT_DIRS_RELEASE ${ARCH_PREBUILT_DIRS})      set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS}) -    set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged .sos") +    set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/lib CACHE FILEPATH "Location of staged .sos") +    set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/bin CACHE FILEPATH "Location of staged executables")    elseif (DARWIN)      set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)      set(ARCH_PREBUILT_DIRS ${ARCH_PREBUILT_DIRS_RELEASE})      set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS_RELEASE})      set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged DLLs") +    set(EXE_STAGING_DIR "${CMAKE_BINARY_DIR}/sharedlibs/\$(CONFIGURATION)" CACHE FILEPATH "Location of staged executables")    endif (WINDOWS)  endif (NOT STANDALONE) diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index f785698612..ea36e65729 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -8,9 +8,7 @@ include(Linking)  include(Boost)  include (Pth) -if (WINDOWS) -    include(CopyWinLibs) -endif (WINDOWS) +include(Copy3rdPartyLibs)  include_directories(      ${EXPAT_INCLUDE_DIRS} @@ -252,6 +250,13 @@ if(LLCOMMON_LINK_SHARED)          if(NOT WINDOWS)            get_target_property(LLCOMMON_PATH llcommon LOCATION)            get_filename_component(LLCOMMON_FILE ${LLCOMMON_PATH} NAME) +          if(DARWIN) +            set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources) +          else(DARWIN) +            set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}) +          endif(DARWIN) + +          # *TODO - maybe make this a symbolic link? -brad            add_custom_command(              TARGET llcommon POST_BUILD              COMMAND ${CMAKE_COMMAND} @@ -259,7 +264,7 @@ if(LLCOMMON_LINK_SHARED)                -E                copy_if_different                ${LLCOMMON_PATH} -              ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/${LLCOMMON_FILE} +              ${SHARED_LIB_STAGING_DIR_CONFIG}/${LLCOMMON_FILE}              COMMENT "Copying llcommon to the staging folder."              )          endif(NOT WINDOWS) | 
