From 786b291d9c6b784c7ce6ceef0e38a4ec76ea14db Mon Sep 17 00:00:00 2001 From: Nicky Date: Wed, 6 Apr 2022 16:32:52 +0200 Subject: Move CMake files to modernized cmake syntax, step 1. Change projects to cmake targetsto get rid of havig to hardcore include directories and link libraries in consumer projects. --- indra/test/CMakeLists.txt | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) (limited to 'indra/test') diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 084aa8d9f7..1e9fdfa003 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -5,11 +5,6 @@ project (lltest) include(00-Common) include(LLCommon) include(LLCoreHttp) -include(LLInventory) -include(LLMath) -include(LLMessage) -include(LLFileSystem) -include(LLXML) include(Linking) include(Tut) include(LLAddBuildTest) @@ -88,27 +83,18 @@ if (USE_BUGSPLAT) endif (USE_BUGSPLAT) target_link_libraries(lltest - ${LEGACY_STDIO_LIBS} - ${LLDATABASE_LIBRARIES} - ${LLINVENTORY_LIBRARIES} - ${LLMESSAGE_LIBRARIES} - ${LLMATH_LIBRARIES} - ${LLFILESYSTEM_LIBRARIES} - ${LLXML_LIBRARIES} - ${LSCRIPT_LIBRARIES} - ${LLCOMMON_LIBRARIES} - ${LLCOREHTTP_LIBRARIES} - ${EXPAT_LIBRARIES} - ${GOOGLEMOCK_LIBRARIES} - ${PTHREAD_LIBRARY} - ${WINDOWS_LIBRARIES} - ${BOOST_PROGRAM_OPTIONS_LIBRARY} - ${BOOST_REGEX_LIBRARY} - ${BOOST_FIBER_LIBRARY} - ${BOOST_CONTEXT_LIBRARY} - ${BOOST_SYSTEM_LIBRARY} - ${DL_LIBRARY} - ) + ${LEGACY_STDIO_LIBS} + ${LLDATABASE_LIBRARIES} + llinventory + llmessage + llmath + llfilesystem + llxml + llcommon + llcorehttp + ${WINDOWS_LIBRARIES} + ${DL_LIBRARY} + ) if (WINDOWS) set_target_properties(lltest -- cgit v1.3 From bed0b80374c3acfc584587a9b0bc02f8bf899876 Mon Sep 17 00:00:00 2001 From: Nicky Date: Wed, 6 Apr 2022 20:23:54 +0200 Subject: Remove obsolete include directives --- indra/test/CMakeLists.txt | 18 ------------------ 1 file changed, 18 deletions(-) (limited to 'indra/test') diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 1e9fdfa003..b607980bae 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -11,24 +11,6 @@ include(LLAddBuildTest) include(bugsplat) include(GoogleMock) -include_directories( - ${LLCOMMON_INCLUDE_DIRS} - ${LLCOREHTTP_INCLUDE_DIRS} - ${LLDATABASE_INCLUDE_DIRS} - ${LLMATH_INCLUDE_DIRS} - ${LLMESSAGE_INCLUDE_DIRS} - ${LLINVENTORY_INCLUDE_DIRS} - ${LLFILESYSTEM_INCLUDE_DIRS} - ${LLXML_INCLUDE_DIRS} - ${LSCRIPT_INCLUDE_DIRS} - ${GOOGLEMOCK_INCLUDE_DIRS} - ${TUT_INCLUDE_DIR} - ) -include_directories(SYSTEM - ${LLCOMMON_SYSTEM_INCLUDE_DIRS} - ${LLXML_SYSTEM_INCLUDE_DIRS} - ) - set(test_SOURCE_FILES io.cpp llapp_tut.cpp -- cgit v1.3 From d1b6a52fefb483ab75ec60e379d37bfd2e6aff90 Mon Sep 17 00:00:00 2001 From: Nicky Date: Wed, 6 Apr 2022 22:38:38 +0200 Subject: Googlemock target --- indra/cmake/GoogleMock.cmake | 29 +++++++++++++++-------------- indra/cmake/LLAddBuildTest.cmake | 15 ++++++--------- indra/llmath/CMakeLists.txt | 5 ----- indra/test/CMakeLists.txt | 1 + 4 files changed, 22 insertions(+), 28 deletions(-) (limited to 'indra/test') diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake index 5a00546927..58975df62e 100644 --- a/indra/cmake/GoogleMock.cmake +++ b/indra/cmake/GoogleMock.cmake @@ -4,25 +4,26 @@ include(Linking) use_prebuilt_binary(googlemock) -set(GOOGLEMOCK_INCLUDE_DIRS - ${LIBS_PREBUILT_DIR}/include) +if( TARGET googlemock::googlemock ) + return() +endif() +create_target( googlemock::googlemock ) +set_target_include_dirs( googlemock::googlemock + ${LIBS_PREBUILT_DIR}/include + ) if (LINUX) # VWR-24366: gmock is underlinked, it needs gtest. - set(GOOGLEMOCK_LIBRARIES - gmock -Wl,--no-as-needed - gtest -Wl,--as-needed) + set_target_libraries( googlemock::googlemock gmock gtest) elseif(WINDOWS) - set(GOOGLEMOCK_LIBRARIES - gmock) - set(GOOGLEMOCK_INCLUDE_DIRS - ${LIBS_PREBUILT_DIR}/include - ${LIBS_PREBUILT_DIR}/include/gmock - ${LIBS_PREBUILT_DIR}/include/gmock/boost/tr1/tr1) + set_target_libraries( googlemock::googlemock gmock) + set_target_include_dirs( googlemock::googlemock + ${LIBS_PREBUILT_DIR}/include + ${LIBS_PREBUILT_DIR}/include/gmock + ${LIBS_PREBUILT_DIR}/include/gmock/boost/tr1/tr1 ) + elseif(DARWIN) - set(GOOGLEMOCK_LIBRARIES - gmock - gtest) + set_target_libraries( googlemock::googlemock gmock gtest) endif(LINUX) diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index 6860b1f316..1a8003ea7f 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -45,7 +45,7 @@ INCLUDE(GoogleMock) ) SET(alltest_LIBRARIES llcommon - ${GOOGLEMOCK_LIBRARIES} + googlemock::googlemock ${PTHREAD_LIBRARY} ${WINDOWS_LIBRARIES} ) @@ -206,14 +206,11 @@ FUNCTION(LL_ADD_INTEGRATION_TEST ) SET(libraries - ${LEGACY_STDIO_LIBS} - ${library_dependencies} - ${BOOST_FIBER_LIBRARY} - ${BOOST_CONTEXT_LIBRARY} - ${BOOST_SYSTEM_LIBRARY} - ${GOOGLEMOCK_LIBRARIES} - ${PTHREAD_LIBRARY} - ) + ${LEGACY_STDIO_LIBS} + ${library_dependencies} + googlemock::googlemock + ${PTHREAD_LIBRARY} + ) # Add test executable build target if(TEST_DEBUG) diff --git a/indra/llmath/CMakeLists.txt b/indra/llmath/CMakeLists.txt index c385a4cff6..fd7b831719 100644 --- a/indra/llmath/CMakeLists.txt +++ b/indra/llmath/CMakeLists.txt @@ -7,11 +7,6 @@ include(LLCommon) include(bugsplat) include(Boost) -include_directories( - ${LLCOMMON_INCLUDE_DIRS} - ${LLCOMMON_SYSTEM_INCLUDE_DIRS} - ) - set(llmath_SOURCE_FILES llbbox.cpp llbboxlocal.cpp diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index b607980bae..6d04c3b76b 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -74,6 +74,7 @@ target_link_libraries(lltest llxml llcommon llcorehttp + googlemock::googlemock ${WINDOWS_LIBRARIES} ${DL_LIBRARY} ) -- cgit v1.3 From 241919e7f7986c11586a49bff53cf19c2c0e0ea6 Mon Sep 17 00:00:00 2001 From: Nicky Date: Wed, 13 Apr 2022 19:21:55 +0200 Subject: Rework cmake, the original plan was to maybe be able to use conan targets with the same name (that's why 3ps had names like apr::apr), but it's safer and saner to put the LL 3ps under the ll:: prefix. This also allows means it is possible to get rid of that bad "if( TRAGET ...) return() endif()" pattern and rather use include_guard(). --- indra/cmake/00-Common.cmake | 5 +--- indra/cmake/APR.cmake | 14 +++++----- indra/cmake/Audio.cmake | 12 ++++----- indra/cmake/Boost.cmake | 16 ++++-------- indra/cmake/CEFPlugin.cmake | 4 +-- indra/cmake/CURL.cmake | 12 ++++----- indra/cmake/EXPAT.cmake | 12 ++++----- indra/cmake/FMODSTUDIO.cmake | 15 +++++------ indra/cmake/FreeType.cmake | 10 +++----- indra/cmake/GLOD.cmake | 10 +++----- indra/cmake/GoogleMock.cmake | 17 ++++++------ indra/cmake/Havok.cmake | 4 +-- indra/cmake/Hunspell.cmake | 16 +++++------- indra/cmake/JPEG.cmake | 14 +++++----- indra/cmake/JsonCpp.cmake | 14 +++++----- indra/cmake/LLAddBuildTest.cmake | 4 +-- indra/cmake/LLKDU.cmake | 12 ++++----- indra/cmake/LLPhysicsExtensions.cmake | 4 +-- indra/cmake/LLPrimitive.cmake | 30 ++++++++++------------ indra/cmake/LLWindow.cmake | 12 ++++----- indra/cmake/LibVLCPlugin.cmake | 12 ++++----- indra/cmake/Linking.cmake | 5 +--- indra/cmake/NDOF.cmake | 12 ++++----- indra/cmake/NGHTTP2.cmake | 14 +++++----- indra/cmake/NVAPI.cmake | 8 ++---- indra/cmake/OPENAL.cmake | 14 +++++----- indra/cmake/OpenJPEG.cmake | 10 +++----- indra/cmake/OpenSSL.cmake | 14 +++++----- indra/cmake/PNG.cmake | 12 ++++----- indra/cmake/Prebuilt.cmake | 6 +---- indra/cmake/URIPARSER.cmake | 14 +++++----- indra/cmake/Variables.cmake | 5 +--- indra/cmake/XmlRpcEpi.cmake | 10 +++----- indra/cmake/ZLIBNG.cmake | 12 ++++----- indra/cmake/bugsplat.cmake | 10 +++----- .../llimage_libtest/CMakeLists.txt | 19 +++++++------- .../integration_tests/llui_libtest/CMakeLists.txt | 23 ++++++++--------- indra/linux_crash_logger/CMakeLists.txt | 19 ++++++-------- indra/llaudio/CMakeLists.txt | 10 ++++---- indra/llcommon/CMakeLists.txt | 19 +++++--------- indra/llcorehttp/CMakeLists.txt | 6 ++--- indra/llimage/CMakeLists.txt | 5 ++-- indra/llimagej2coj/CMakeLists.txt | 2 +- indra/llkdu/CMakeLists.txt | 4 +-- indra/llmessage/CMakeLists.txt | 4 --- indra/llprimitive/CMakeLists.txt | 4 +-- indra/llrender/CMakeLists.txt | 4 +-- indra/llui/CMakeLists.txt | 6 ++--- indra/llwindow/CMakeLists.txt | 2 +- indra/llxml/CMakeLists.txt | 2 +- indra/media_plugins/libvlc/CMakeLists.txt | 2 +- indra/newview/CMakeLists.txt | 15 ++++------- indra/test/CMakeLists.txt | 2 +- 53 files changed, 221 insertions(+), 322 deletions(-) (limited to 'indra/test') diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 54b74b14fb..ec0e195b56 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -12,9 +12,7 @@ # Also realize that CMAKE_CXX_FLAGS may already be partially populated on # entry to this file. #***************************************************************************** - -if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) -set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +include_guard() include(Variables) @@ -200,4 +198,3 @@ set(${ARCH}_linux_INCLUDES pango-1.0 ) -endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake index 63ea195fad..269b0f3000 100644 --- a/indra/cmake/APR.cmake +++ b/indra/cmake/APR.cmake @@ -1,11 +1,9 @@ include(Linking) include(Prebuilt) -if( TARGET apr::apr ) - return() -endif() +include_guard() -create_target( apr::apr) +create_target( ll::apr) use_prebuilt_binary(apr_suite) if (WINDOWS) @@ -14,7 +12,7 @@ if (WINDOWS) else (LLCOMMON_LINK_SHARED) set(APR_selector "") endif (LLCOMMON_LINK_SHARED) - set_target_libraries( apr::apr + set_target_libraries( ll::apr ${ARCH_PREBUILT_DIRS_RELEASE}/${APR_selector}apr-1.lib ${ARCH_PREBUILT_DIRS_RELEASE}/${APR_selector}apriconv-1.lib ${ARCH_PREBUILT_DIRS_RELEASE}/${APR_selector}aprutil-1.lib @@ -28,13 +26,13 @@ elseif (DARWIN) set(APRUTIL_selector "a") endif (LLCOMMON_LINK_SHARED) - set_target_libraries( apr::apr + set_target_libraries( ll::apr libapr-1.${APR_selector} libaprutil-1.${APRUTIL_selector} iconv ) else (WINDOWS) - set_target_libraries( apr::apr + set_target_libraries( ll::apr apr-1 aprutil-1 iconv @@ -42,4 +40,4 @@ else (WINDOWS) rt ) endif (WINDOWS) -set_target_include_dirs( apr::apr ${LIBS_PREBUILT_DIR}/include/apr-1 ) +set_target_include_dirs( ll::apr ${LIBS_PREBUILT_DIR}/include/apr-1 ) diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake index bf95a8eef1..e533d1ac00 100644 --- a/indra/cmake/Audio.cmake +++ b/indra/cmake/Audio.cmake @@ -1,17 +1,15 @@ # -*- cmake -*- include(Prebuilt) -if(TARGET vorbis::vorbis) - return() -endif() -create_target(vorbis::vorbis) +include_guard() +create_target(ll::vorbis) use_prebuilt_binary(ogg_vorbis) -set_target_include_dirs( vorbis::vorbis ${LIBS_PREBUILT_DIR}/include ) +set_target_include_dirs( ll::vorbis ${LIBS_PREBUILT_DIR}/include ) if (WINDOWS) - set_target_libraries(vorbis::vorbis ogg_static vorbis_static vorbisenc_static vorbisfile_static ) + set_target_libraries(ll::vorbis ogg_static vorbis_static vorbisenc_static vorbisfile_static ) else (WINDOWS) - set_target_libraries(vorbis::vorbis ogg vorbis vorbisenc vorbisfile ) + set_target_libraries(ll::vorbis ogg vorbis vorbisenc vorbisfile ) endif (WINDOWS) diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 2102ee3887..ac6151ffe3 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -1,23 +1,17 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET boost::boost ) - return() -endif() -create_target( boost::boost ) - -set(Boost_FIND_QUIETLY ON) -set(Boost_FIND_REQUIRED ON) +include_guard() +create_target( ll::boost ) use_prebuilt_binary(boost) -set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) # As of sometime between Boost 1.67 and 1.72, Boost libraries are suffixed # with the address size. set(addrsfx "-x${ADDRESS_SIZE}") if (WINDOWS) - set_target_libraries( boost::boost + set_target_libraries( ll::boost libboost_context-mt${addrsfx} libboost_fiber-mt${addrsfx} libboost_filesystem-mt${addrsfx} @@ -26,7 +20,7 @@ if (WINDOWS) libboost_system-mt${addrsfx} libboost_thread-mt${addrsfx}) elseif (LINUX) - set_target_libraries( boost::boost + set_target_libraries( ll::boost boost_context-mt${addrsfx} boost_fiber-mt${addrsfx} boost_filesystem-mt${addrsfx} @@ -36,7 +30,7 @@ elseif (LINUX) boost_system-mt${addrsfx} boost_thread-mt${addrsfx}) elseif (DARWIN) - set_target_libraries( boost::boost + set_target_libraries( ll::boost boost_context-mt${addrsfx} boost_fiber-mt${addrsfx} boost_filesystem-mt${addrsfx} diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake index bcce4cfa05..6dba5e26ac 100644 --- a/indra/cmake/CEFPlugin.cmake +++ b/indra/cmake/CEFPlugin.cmake @@ -2,9 +2,7 @@ include(Linking) include(Prebuilt) -if(TARGET cef::cef) - return() -endif() +include_guard() create_target( cef::cef ) use_prebuilt_binary(dullahan) diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake index 455d420e48..2a5ea67ff3 100644 --- a/indra/cmake/CURL.cmake +++ b/indra/cmake/CURL.cmake @@ -1,15 +1,13 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET libcurl::libcurl ) - return() -endif() -create_target(libcurl::libcurl) +include_guard() +create_target(ll::libcurl) use_prebuilt_binary(curl) if (WINDOWS) - set_target_libraries(libcurl::libcurl libcurl.lib) + set_target_libraries(ll::libcurl libcurl.lib) else (WINDOWS) - set_target_libraries(libcurl::libcurl libcurl.a) + set_target_libraries(ll::libcurl libcurl.a) endif (WINDOWS) -set_target_include_dirs( libcurl::libcurl ${LIBS_PREBUILT_DIR}/include) +set_target_include_dirs( ll::libcurl ${LIBS_PREBUILT_DIR}/include) diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake index fb0467987b..85bb146a4a 100644 --- a/indra/cmake/EXPAT.cmake +++ b/indra/cmake/EXPAT.cmake @@ -1,21 +1,19 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET expat::expat ) - return() -endif() -create_target( expat::expat INTERFACE IMPORTED ) +include_guard() +create_target( ll::expat INTERFACE IMPORTED ) use_prebuilt_binary(expat) if (WINDOWS) - set_target_libraries( expat::expat libexpatMT ) + set_target_libraries( ll::expat libexpatMT ) set(EXPAT_COPY libexpatMT.dll) else (WINDOWS) - set_target_libraries( expat::expat expat ) + set_target_libraries( ll::expat expat ) if (DARWIN) set(EXPAT_COPY libexpat.1.dylib libexpat.dylib) else () set(EXPAT_COPY libexpat.so.1 libexpat.so) endif () endif (WINDOWS) -set_target_include_dirs( expat::expat ${LIBS_PREBUILT_DIR}/include ) +set_target_include_dirs( ll::expat ${LIBS_PREBUILT_DIR}/include ) diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 41a75741c9..653d96f86a 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -1,5 +1,7 @@ # -*- cmake -*- +include_guard() + # FMODSTUDIO can be set when launching the make using the argument -DFMODSTUDIO:BOOL=ON # When building using proprietary binaries though (i.e. having access to LL private servers), # we always build with FMODSTUDIO. @@ -8,10 +10,7 @@ if (INSTALL_PROPRIETARY) endif (INSTALL_PROPRIETARY) if (FMODSTUDIO) - if( TARGET fmodstudio::fmodstudio ) - return() - endif() - create_target( fmodstudio::fmodstudio ) + create_target( ll::fmodstudio ) if (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR) # If the path have been specified in the arguments, use that @@ -25,15 +24,15 @@ if (FMODSTUDIO) include(Prebuilt) use_prebuilt_binary(fmodstudio) if (WINDOWS) - set_target_libraries( fmodstudio::fmodstudio fmod_vc) + set_target_libraries( ll::fmodstudio fmod_vc) elseif (DARWIN) #despite files being called libfmod.dylib, we are searching for fmod - set_target_libraries( fmodstudio::fmodstudio fmod) + set_target_libraries( ll::fmodstudio fmod) elseif (LINUX) - set_target_libraries( fmodstudio::fmodstudio fmod) + set_target_libraries( ll::fmodstudio fmod) endif (WINDOWS) - set_target_include_dirs(fmodstudio::fmodstudio ${LIBS_PREBUILT_DIR}/include/fmodstudio) + set_target_include_dirs(ll::fmodstudio ${LIBS_PREBUILT_DIR}/include/fmodstudio) endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR) endif (FMODSTUDIO) diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake index 429bb5060b..243f22586b 100644 --- a/indra/cmake/FreeType.cmake +++ b/indra/cmake/FreeType.cmake @@ -1,12 +1,10 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET freetype::freetype ) - return() -endif() -create_target( freetype::freetype) +include_guard() +create_target( ll::freetype) use_prebuilt_binary(freetype) -set_target_include_dirs( freetype::freetype ${LIBS_PREBUILT_DIR}/include/freetype2/) -set_target_libraries( freetype::freetype freetype ) +set_target_include_dirs( ll::freetype ${LIBS_PREBUILT_DIR}/include/freetype2/) +set_target_libraries( ll::freetype freetype ) diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake index 1a33644e9e..2d7f85030f 100644 --- a/indra/cmake/GLOD.cmake +++ b/indra/cmake/GLOD.cmake @@ -1,14 +1,12 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET glod::glod ) - return() -endif() -create_target( glod::glod ) +include_guard() +create_target( ll::glod ) use_prebuilt_binary(glod) set(GLODLIB ON CACHE BOOL "Using GLOD library") -set_target_include_dirs( glod::glod ${LIBS_PREBUILT_DIR}/include) -set_target_libraries( glod::glod GLOD ) +set_target_include_dirs( ll::glod ${LIBS_PREBUILT_DIR}/include) +set_target_libraries( ll::glod GLOD ) diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake index 821346ced6..1f161ec4ff 100644 --- a/indra/cmake/GoogleMock.cmake +++ b/indra/cmake/GoogleMock.cmake @@ -2,27 +2,26 @@ include(Prebuilt) include(Linking) +include_guard() + use_prebuilt_binary(googlemock) -if( TARGET googlemock::googlemock ) - return() -endif() -create_target( googlemock::googlemock ) -set_target_include_dirs( googlemock::googlemock +create_target( ll::googlemock ) +set_target_include_dirs( ll::googlemock ${LIBS_PREBUILT_DIR}/include ) if (LINUX) # VWR-24366: gmock is underlinked, it needs gtest. - set_target_libraries( googlemock::googlemock gmock gtest) + set_target_libraries( ll::googlemock gmock gtest) elseif(WINDOWS) - set_target_libraries( googlemock::googlemock gmock) - set_target_include_dirs( googlemock::googlemock + set_target_libraries( ll::googlemock gmock) + set_target_include_dirs( ll::googlemock ${LIBS_PREBUILT_DIR}/include ${LIBS_PREBUILT_DIR}/include/gmock) elseif(DARWIN) - set_target_libraries( googlemock::googlemock gmock gtest) + set_target_libraries( ll::googlemock gmock gtest) endif(LINUX) diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake index 811a126b8f..652760e626 100644 --- a/indra/cmake/Havok.cmake +++ b/indra/cmake/Havok.cmake @@ -1,7 +1,6 @@ # -*- cmake -*- include(Prebuilt) -if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) -set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +include_guard() use_prebuilt_binary(havok-source) @@ -124,4 +123,3 @@ foreach(HAVOK_LIB ${HAVOK_LIBS}) endif (LINUX) endforeach(HAVOK_LIB) -endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake index 81702cbd77..258a27b5de 100644 --- a/indra/cmake/Hunspell.cmake +++ b/indra/cmake/Hunspell.cmake @@ -1,20 +1,16 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET hunspell::hunspell ) - return() -endif() -create_target( hunspell::hunspell ) +include_guard() +create_target( ll::hunspell ) use_prebuilt_binary(libhunspell) if (WINDOWS) - set_target_libraries( hunspell::hunspell libhunspell) + set_target_libraries( ll::hunspell libhunspell) elseif(DARWIN) - set_target_libraries( hunspell::hunspell hunspell-1.3) + set_target_libraries( ll::hunspell hunspell-1.3) elseif(LINUX) - set_target_libraries( hunspell::hunspell hunspell-1.3) -else() - message(FATAL_ERROR "Invalid platform") + set_target_libraries( ll::hunspell hunspell-1.3) endif() -set_target_include_dirs( hunspell::hunspell ${LIBS_PREBUILT_DIR}/include/hunspell) +set_target_include_dirs( ll::hunspell ${LIBS_PREBUILT_DIR}/include/hunspell) use_prebuilt_binary(dictionaries) diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake index d3bec7901f..e6ff4b7b72 100644 --- a/indra/cmake/JPEG.cmake +++ b/indra/cmake/JPEG.cmake @@ -3,17 +3,15 @@ include(Prebuilt) include(Linking) -if( TARGET jpeglib::jpeglib ) - return() -endif() -create_target(jpeglib::jpeglib) +include_guard() +create_target(ll::jpeglib) use_prebuilt_binary(jpeglib) if (LINUX) - set_target_libraries( jpeglib::jpeglib jpeg) + set_target_libraries( ll::jpeglib jpeg) elseif (DARWIN) - set_target_libraries( jpeglib::jpeglib jpeg) + set_target_libraries( ll::jpeglib jpeg) elseif (WINDOWS) - set_target_libraries( jpeglib::jpeglib jpeglib) + set_target_libraries( ll::jpeglib jpeglib) endif (LINUX) -set_target_include_dirs( jpeglib::jpeglib ${LIBS_PREBUILT_DIR}/include) +set_target_include_dirs( ll::jpeglib ${LIBS_PREBUILT_DIR}/include) diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 139735ed05..a155c6ea78 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -1,17 +1,15 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET jsoncpp::jsoncpp ) - return() -endif() -create_target( jsoncpp::jsoncpp) +include_guard() +create_target( ll::jsoncpp) use_prebuilt_binary(jsoncpp) if (WINDOWS) - set_target_libraries( jsoncpp::jsoncpp json_libmd.lib ) + set_target_libraries( ll::jsoncpp json_libmd.lib ) elseif (DARWIN) - set_target_libraries( jsoncpp::jsoncpp libjson_darwin_libmt.a ) + set_target_libraries( ll::jsoncpp libjson_darwin_libmt.a ) elseif (LINUX) - set_target_libraries( jsoncpp::jsoncpp libjson_linux-gcc-4.1.3_libmt.a ) + set_target_libraries( ll::jsoncpp libjson_linux-gcc-4.1.3_libmt.a ) endif (WINDOWS) -set_target_include_dirs( jsoncpp::jsoncpp ${LIBS_PREBUILT_DIR}/include/json) +set_target_include_dirs( ll::jsoncpp ${LIBS_PREBUILT_DIR}/include/json) diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index 2fa9a7cd96..a3c873b389 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -45,7 +45,7 @@ INCLUDE(GoogleMock) ) SET(alltest_LIBRARIES llcommon - googlemock::googlemock + ll::googlemock ${PTHREAD_LIBRARY} ${WINDOWS_LIBRARIES} ) @@ -208,7 +208,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST SET(libraries ${LEGACY_STDIO_LIBS} ${library_dependencies} - googlemock::googlemock + ll::googlemock ${PTHREAD_LIBRARY} ) diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake index a0463be635..a57c3d8715 100644 --- a/indra/cmake/LLKDU.cmake +++ b/indra/cmake/LLKDU.cmake @@ -7,21 +7,19 @@ if (INSTALL_PROPRIETARY) set(USE_KDU ON CACHE BOOL "Use Kakadu library.") endif (INSTALL_PROPRIETARY) -if( TARGET kdu::kdu ) - return() -endif() -create_target( kdu::kdu ) +include_guard() +create_target( ll::kdu ) if (USE_KDU) include(Prebuilt) use_prebuilt_binary(kdu) if (WINDOWS) - set_target_libraries( kdu::kdu kdu.lib) + set_target_libraries( ll::kdu kdu.lib) else (WINDOWS) - set_target_libraries( kdu::kdu libkdu.a) + set_target_libraries( ll::kdu libkdu.a) endif (WINDOWS) - set_target_include_dirs( kdu::kdu + set_target_include_dirs( ll::kdu ${AUTOBUILD_INSTALL_DIR}/include/kdu ${LIBS_OPEN_DIR}/llkdu ) diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake index c46a04129a..b51c4c622a 100644 --- a/indra/cmake/LLPhysicsExtensions.cmake +++ b/indra/cmake/LLPhysicsExtensions.cmake @@ -10,9 +10,7 @@ if (INSTALL_PROPRIETARY) set(HAVOK ON CACHE BOOL "Use Havok physics library") endif (INSTALL_PROPRIETARY) -if(TARGET llphysicsextensions ) - return() -endif() +include_guard() create_target(llphysicsextensions) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 799afc77d1..0f0e2d3bbf 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -4,41 +4,39 @@ include(Prebuilt) include(Boost) -if( TARGET colladadom::colladadom ) - return() -endif() +include_guard() use_prebuilt_binary(colladadom) use_prebuilt_binary(minizip-ng) # needed for colladadom use_prebuilt_binary(pcre) use_prebuilt_binary(libxml2) -create_target( pcre::pcre ) -set_target_libraries( pcre::pcre pcrecpp pcre ) +create_target( ll::pcre ) +set_target_libraries( ll::pcre pcrecpp pcre ) -create_target( minizip-ng::minizip-ng ) +create_target( ll::minizip-ng ) if (WINDOWS) - set_target_libraries( minizip-ng::minizip-ng libminizip ) + set_target_libraries( ll::minizip-ng libminizip ) else() - set_target_libraries( minizip-ng::minizip-ng minizip ) + set_target_libraries( ll::minizip-ng minizip ) endif() -create_target( libxml::libxml ) +create_target( ll::libxml ) if (WINDOWS) - set_target_libraries( libxml::libxml libxml2_a) + set_target_libraries( ll::libxml libxml2_a) else() - set_target_libraries( libxml::libxml xml2) + set_target_libraries( ll::libxml xml2) endif() -create_target( colladadom::colladadom ) -set_target_include_dirs( colladadom::colladadom +create_target( ll::colladadom ) +set_target_include_dirs( ll::colladadom ${LIBS_PREBUILT_DIR}/include/collada ${LIBS_PREBUILT_DIR}/include/collada/1.4 ) if (WINDOWS) - set_target_libraries(colladadom::colladadom libcollada14dom23-s libxml::libxml minizip-ng::minizip-ng ) + set_target_libraries(ll::colladadom libcollada14dom23-s ll::libxml ll::minizip-ng ) elseif (DARWIN) - set_target_libraries(colladadom::colladadom collada14dom libxml::libxml minizip-ng::minizip-ng) + set_target_libraries(ll::colladadom collada14dom ll::libxml ll::minizip-ng) elseif (LINUX) - set_target_libraries(colladadom::colladadom collada14dom libxml::libxml minizip-ng::minizip-ng) + set_target_libraries(ll::colladadom collada14dom ll::libxml ll::minizip-ng) endif() \ No newline at end of file diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake index 42d2a0f2c4..2bbaff942d 100644 --- a/indra/cmake/LLWindow.cmake +++ b/indra/cmake/LLWindow.cmake @@ -4,16 +4,14 @@ include(Variables) include(GLEXT) include(Prebuilt) -if( TARGET sdl::sdl) - return() -endif() -create_target(sdl::sdl) +include_guard() +create_target(ll::sdl) if (LINUX) use_prebuilt_binary(SDL) - set_target_include_dirs( sdl::sdl ${LIBS_PREBUILT_DIR}/i686-linux) - set_target_libraries( sdl::sdl SDL directfb fusion direct X11) - target_compile_definitions( sdl::sdl INTERFACE LL_SDL=1) + set_target_include_dirs( ll::sdl ${LIBS_PREBUILT_DIR}/i686-linux) + set_target_libraries( ll::sdl SDL directfb fusion direct X11) + target_compile_definitions( ll::sdl INTERFACE LL_SDL=1) endif (LINUX) diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake index 12ba1720c7..1648bfd942 100644 --- a/indra/cmake/LibVLCPlugin.cmake +++ b/indra/cmake/LibVLCPlugin.cmake @@ -2,10 +2,8 @@ include(Linking) include(Prebuilt) -if( TARGET libvlc::libvlc ) - return() -endif() -create_target( libvlc::libvlc ) +include_guard() +create_target( ll::libvlc ) use_prebuilt_binary(vlc-bin) set(LIBVLCPLUGIN ON CACHE BOOL @@ -13,18 +11,18 @@ set(LIBVLCPLUGIN ON CACHE BOOL set(VLC_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/vlc) if (WINDOWS) - set_target_libraries( libvlc::libvlc + set_target_libraries( ll::libvlc libvlc.lib libvlccore.lib ) elseif (DARWIN) - set_target_libraries( libvlc::libvlc + set_target_libraries( ll::libvlc libvlc.dylib libvlccore.dylib ) elseif (LINUX) # Specify a full path to make sure we get a static link - set_target_libraries( liblvc::libvlc + set_target_libraries( ll::libvlc ${LIBS_PREBUILT_DIR}/lib/libvlc.a ${LIBS_PREBUILT_DIR}/lib/libvlccore.a ) diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index d3e82f8c3a..4a57a6a3ef 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -1,8 +1,6 @@ # -*- cmake -*- -if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) -set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") - +include_guard() include(Variables) set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib) @@ -86,4 +84,3 @@ endif (WINDOWS) mark_as_advanced(DL_LIBRARY PTHREAD_LIBRARY WINDOWS_LIBRARIES) -endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake index e5ec962f4c..75936425ff 100644 --- a/indra/cmake/NDOF.cmake +++ b/indra/cmake/NDOF.cmake @@ -3,10 +3,8 @@ include(Prebuilt) set(NDOF ON CACHE BOOL "Use NDOF space navigator joystick library.") -if ( TARGET ndof::ndof ) - return() -endif() -create_target( ndof::ndof ) +include_guard() +create_target( ll::ndof ) if (NDOF) if (WINDOWS OR DARWIN) @@ -16,11 +14,11 @@ if (NDOF) endif (WINDOWS OR DARWIN) if (WINDOWS) - set_target_libraries( ndof::ndof libndofdev) + set_target_libraries( ll::ndof libndofdev) elseif (DARWIN OR LINUX) - set_target_libraries( ndof::ndof ndofdev) + set_target_libraries( ll::ndof ndofdev) endif (WINDOWS) - target_compile_definitions( ndof::ndof INTERFACE LIB_NDOF=1) + target_compile_definitions( ll::ndof INTERFACE LIB_NDOF=1) endif (NDOF) if (NOT NDOF_FOUND) diff --git a/indra/cmake/NGHTTP2.cmake b/indra/cmake/NGHTTP2.cmake index b1a0d33102..e92f0da2ef 100644 --- a/indra/cmake/NGHTTP2.cmake +++ b/indra/cmake/NGHTTP2.cmake @@ -1,16 +1,14 @@ include(Prebuilt) -if( TARGET nghttp2::nghttp2 ) - return() -endif() -create_target( nghttp2::nghttp2 ) +include_guard() +create_target( ll::nghttp2 ) use_prebuilt_binary(nghttp2) if (WINDOWS) - set_target_libraries( nghttp2::nghttp2 ${ARCH_PREBUILT_DIRS_RELEASE}/nghttp2.lib) + set_target_libraries( ll::nghttp2 ${ARCH_PREBUILT_DIRS_RELEASE}/nghttp2.lib) elseif (DARWIN) - set_target_libraries( nghttp2::nghttp2 libnghttp2.dylib) + set_target_libraries( ll::nghttp2 libnghttp2.dylib) else (WINDOWS) - set_target_libraries( nghttp2::nghttp2 libnghttp2.a ) + set_target_libraries( ll::nghttp2 libnghttp2.a ) endif (WINDOWS) -set_target_include_dirs( nghttp2::nghttp2 ${LIBS_PREBUILT_DIR}/include/nghttp2) +set_target_include_dirs( ll::nghttp2 ${LIBS_PREBUILT_DIR}/include/nghttp2) diff --git a/indra/cmake/NVAPI.cmake b/indra/cmake/NVAPI.cmake index 1eea96784f..63e5dd12de 100644 --- a/indra/cmake/NVAPI.cmake +++ b/indra/cmake/NVAPI.cmake @@ -5,13 +5,9 @@ set(NVAPI ON CACHE BOOL "Use NVAPI.") if (NVAPI) if (WINDOWS) - create_target( nvapi::nvapi ) - set_target_libraries( nvapi::nvapi nvapi) + create_target( ll::nvapi ) + set_target_libraries( ll::nvapi nvapi) use_prebuilt_binary(nvapi) - else (WINDOWS) - set(NVAPI_LIBRARY "") endif (WINDOWS) -else (NVAPI) - set(NVAPI_LIBRARY "") endif (NVAPI) diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake index ec60876419..9904f6d1c0 100644 --- a/indra/cmake/OPENAL.cmake +++ b/indra/cmake/OPENAL.cmake @@ -2,6 +2,8 @@ include(Linking) include(Prebuilt) +include_guard() + if (LINUX) set(OPENAL ON CACHE BOOL "Enable OpenAL") else (LINUX) @@ -9,22 +11,18 @@ else (LINUX) endif (LINUX) if (OPENAL) - if( TARGET openal::openal ) - return() - endif() - - create_target( openal::openal ) - set_target_include_dirs( openal::openal "${LIBS_PREBUILT_DIR}/include/AL") + create_target( ll::openal ) + set_target_include_dirs( ll::openal "${LIBS_PREBUILT_DIR}/include/AL") use_prebuilt_binary(openal) if(WINDOWS) - set_target_libraries( openal::openal + set_target_libraries( ll::openal OpenAL32 alut ) elseif(LINUX) - set_target_libraries( openal::openal + set_target_libraries( ll::openal openal alut ) diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake index e8aa231314..7d4d0f467a 100644 --- a/indra/cmake/OpenJPEG.cmake +++ b/indra/cmake/OpenJPEG.cmake @@ -1,12 +1,10 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET openjpeg::openjpeg ) - return() -endif() -create_target( openjpeg::openjpeg ) +include_guard() +create_target( ll::openjpeg ) use_prebuilt_binary(openjpeg) -set_target_libraries(openjpeg::openjpeg openjpeg ) -set_target_include_dirs( openjpeg::openjpeg ${LIBS_PREBUILT_DIR}/include/openjpeg) +set_target_libraries(ll::openjpeg openjpeg ) +set_target_include_dirs( ll::openjpeg ${LIBS_PREBUILT_DIR}/include/openjpeg) diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 0aa95922ed..d586396105 100644 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -1,18 +1,16 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET openssl::openssl ) - return() -endif() -create_target(openssl::openssl) +include_guard() +create_target(ll::openssl) use_prebuilt_binary(openssl) if (WINDOWS) - set_target_libraries(openssl::openssl libssl libcrypto) + set_target_libraries(ll::openssl libssl libcrypto) elseif (LINUX) - set_target_libraries(openssl::openssl ssl crypto dl) + set_target_libraries(ll::openssl ssl crypto dl) else() - set_target_libraries(openssl::openssl ssl crypto) + set_target_libraries(ll::openssl ssl crypto) endif (WINDOWS) -set_target_include_dirs(openssl::openssl ${LIBS_PREBUILT_DIR}/include) +set_target_include_dirs(ll::openssl ${LIBS_PREBUILT_DIR}/include) diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index 819904b6bd..2838a6b667 100644 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -1,15 +1,13 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET libpng::libpng ) - return() -endif() -create_target(libpng::libpng) +include_guard() +create_target(ll::libpng) use_prebuilt_binary(libpng) if (WINDOWS) - set_target_libraries(libpng::libpng libpng16) + set_target_libraries(ll::libpng libpng16) else() - set_target_libraries(libpng::libpng png16 ) + set_target_libraries(ll::libpng png16 ) endif() -set_target_include_dirs( libpng::libpng ${LIBS_PREBUILT_DIR}/include/libpng16) +set_target_include_dirs( ll::libpng ${LIBS_PREBUILT_DIR}/include/libpng16) diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index 9125f2f80f..9e8adf5af1 100644 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -1,7 +1,5 @@ # -*- cmake -*- - -if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) -set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +include_guard() include(FindAutobuild) if(INSTALL_PROPRIETARY) @@ -71,5 +69,3 @@ function( set_target_include_dirs target) set_property( TARGET ${target} PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ARGN} ) endfunction() - -endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/URIPARSER.cmake b/indra/cmake/URIPARSER.cmake index 3afd8cd6c9..35f37b4472 100644 --- a/indra/cmake/URIPARSER.cmake +++ b/indra/cmake/URIPARSER.cmake @@ -1,18 +1,16 @@ # -*- cmake -*- -if( TARGET uriparser::uriparser ) - return() -endif() -create_target( uriparser::uriparser ) +include_guard() +create_target( ll::uriparser ) include(Prebuilt) use_prebuilt_binary(uriparser) if (WINDOWS) - set_target_libraries( uriparser::uriparser uriparser) + set_target_libraries( ll::uriparser uriparser) elseif (LINUX) - set_target_libraries( uriparser::uriparser uriparser) + set_target_libraries( ll::uriparser uriparser) elseif (DARWIN) - set_target_libraries( uriparser::uriparser liburiparser.dylib) + set_target_libraries( ll::uriparser liburiparser.dylib) endif (WINDOWS) -set_target_include_dirs( uriparser::uriparser ${LIBS_PREBUILT_DIR}/include/uriparser) +set_target_include_dirs( ll::uriparser ${LIBS_PREBUILT_DIR}/include/uriparser) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 56916504b5..0cc4b85583 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -15,12 +15,10 @@ if ("$ENV{LL_BUILD}" STREQUAL "") message(FATAL_ERROR "Environment variable LL_BUILD must be set") endif () +include_guard() # Relative and absolute paths to subtrees. -if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) -set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") - if(NOT DEFINED COMMON_CMAKE_DIR) set(COMMON_CMAKE_DIR "${CMAKE_SOURCE_DIR}/cmake") endif(NOT DEFINED COMMON_CMAKE_DIR) @@ -219,4 +217,3 @@ set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header dire source_group("CMake Rules" FILES CMakeLists.txt) -endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake index 28a9a10e40..b2d1d96562 100644 --- a/indra/cmake/XmlRpcEpi.cmake +++ b/indra/cmake/XmlRpcEpi.cmake @@ -1,11 +1,9 @@ # -*- cmake -*- include(Prebuilt) -if( TARGET xmlrpc-epi::xmlrpc-epi ) - return() -endif() -create_target( xmlrpc-epi::xmlrpc-epi ) +include_guard() +create_target( ll::xmlrpc-epi ) use_prebuilt_binary(xmlrpc-epi) -set_target_libraries(xmlrpc-epi::xmlrpc-epi xmlrpc-epi ) -set_target_include_dirs( xmlrpc-epi::xmlrpc-epi ${LIBS_PREBUILT_DIR}/include) +set_target_libraries(ll::xmlrpc-epi xmlrpc-epi ) +set_target_include_dirs( ll::xmlrpc-epi ${LIBS_PREBUILT_DIR}/include) diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake index d5e882cb68..6e206f1e48 100644 --- a/indra/cmake/ZLIBNG.cmake +++ b/indra/cmake/ZLIBNG.cmake @@ -2,15 +2,13 @@ include(Prebuilt) -if( TARGET zlib-ng::zlib-ng ) - return() -endif() -create_target(zlib-ng::zlib-ng) +include_guard() +create_target(ll::zlib-ng) use_prebuilt_binary(zlib-ng) if (WINDOWS) - set_target_libraries( zlib-ng::zlib-ng zlib ) + set_target_libraries( ll::zlib-ng zlib ) else() - set_target_libraries( zlib-ng::zlib-ng z ) + set_target_libraries( ll::zlib-ng z ) endif (WINDOWS) -set_target_include_dirs( zlib-ng::zlib-ng ${LIBS_PREBUILT_DIR}/include/zlib-ng) +set_target_include_dirs( ll::zlib-ng ${LIBS_PREBUILT_DIR}/include/zlib-ng) diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake index 75d5239b47..ce5660aa05 100644 --- a/indra/cmake/bugsplat.cmake +++ b/indra/cmake/bugsplat.cmake @@ -9,10 +9,8 @@ else (INSTALL_PROPRIETARY) set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system") endif (INSTALL_PROPRIETARY) -if( TARGET bugsplat::bugsplat) - return() -endif() -create_target(bugsplat::bugsplat) +include_guard() +create_target(ll::bugsplat) if (USE_BUGSPLAT) include(Prebuilt) @@ -33,7 +31,7 @@ if (USE_BUGSPLAT) set(BUGSPLAT_DB "" CACHE STRING "BugSplat crash database name") - set_target_include_dirs( bugsplat::bugsplat ${LIBS_PREBUILT_DIR}/include/bugsplat) - set_property( TARGET bugsplat::bugsplat APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS LL_BUGSPLAT) + set_target_include_dirs( ll::bugsplat ${LIBS_PREBUILT_DIR}/include/bugsplat) + set_property( TARGET ll::bugsplat APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS LL_BUGSPLAT) endif (USE_BUGSPLAT) diff --git a/indra/integration_tests/llimage_libtest/CMakeLists.txt b/indra/integration_tests/llimage_libtest/CMakeLists.txt index bd59f57e49..9ac3498d09 100644 --- a/indra/integration_tests/llimage_libtest/CMakeLists.txt +++ b/indra/integration_tests/llimage_libtest/CMakeLists.txt @@ -64,16 +64,15 @@ endif (DARWIN) # Libraries on which this application depends on # Sort by high-level to low-level target_link_libraries(llimage_libtest - ${LEGACY_STDIO_LIBS} - ${LLCOMMON_LIBRARIES} - ${LLFILESYSTEM_LIBRARIES} - ${LLMATH_LIBRARIES} - ${LLIMAGE_LIBRARIES} - ${LLKDU_LIBRARIES} - ${KDU_LIBRARY} - ${LLIMAGEJ2COJ_LIBRARIES} - ${OS_LIBRARIES} - ) + ${LEGACY_STDIO_LIBS} + llcommon + llfilesystem + llmath + llimage + llkdu + llimagej2coj + ${OS_LIBRARIES} + ) if (DARWIN) # Path inside the app bundle where we'll need to copy libraries diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt index 68f2ce3a42..baa814fb8b 100644 --- a/indra/integration_tests/llui_libtest/CMakeLists.txt +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -75,19 +75,16 @@ endif (DARWIN) # Libraries on which this library depends, needed for Linux builds # Sort by high-level to low-level target_link_libraries(llui_libtest - ${LEGACY_STDIO_LIBS} - llui - llinventory - llmessage - ${LLRENDER_LIBRARIES} - ${LLIMAGE_LIBRARIES} - ${LLKDU_LIBRARIES} - ${KDU_LIBRARY} - ${LLIMAGEJ2COJ_LIBRARIES} - ${OS_LIBRARIES} - ${GOOGLE_PERFTOOLS_LIBRARIES} - ${HUNSPELL_LIBRARY} - ) + ${LEGACY_STDIO_LIBS} + llui + llinventory + llmessage + llrender + llimage + llkdu + llimagej2coj + ${OS_LIBRARIES} + ) if (WINDOWS) set_target_properties(llui_libtest diff --git a/indra/linux_crash_logger/CMakeLists.txt b/indra/linux_crash_logger/CMakeLists.txt index aa82ed12cc..daa78f77ff 100644 --- a/indra/linux_crash_logger/CMakeLists.txt +++ b/indra/linux_crash_logger/CMakeLists.txt @@ -61,18 +61,15 @@ set(LIBRT_LIBRARY rt) target_link_libraries(linux-crash-logger - ${LLCRASHLOGGER_LIBRARIES} - ${LLFILESYSTEM_LIBRARIES} - ${LLXML_LIBRARIES} - ${LLMESSAGE_LIBRARIES} - ${LLMATH_LIBRARIES} - ${LLCOREHTTP_LIBRARIES} - ${LLCOMMON_LIBRARIES} - ${BOOST_FIBER_LIBRARY} - ${BOOST_CONTEXT_LIBRARY} + llcrashlogger + llfilesystem + llxml + llmessage + llmath + llcorehttp + llcommon ${UI_LIBRARIES} - ${DB_LIBRARIES} - ${FREETYPE_LIBRARIES} + ll::freetype ${LIBRT_LIBRARY} ) diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt index 16576ddbad..21e4723e7e 100644 --- a/indra/llaudio/CMakeLists.txt +++ b/indra/llaudio/CMakeLists.txt @@ -63,12 +63,12 @@ target_link_libraries( llaudio llmath llmessage llfilesystem - vorbis::vorbis + ll::vorbis ) -if( TARGET openal::openal ) - target_link_libraries( llaudio openal::openal ) +if( TARGET ll::openal ) + target_link_libraries( llaudio ll::openal ) endif() -if( TARGET fmodstudio::fmodstudio ) - target_link_libraries( llaudio fmodstudio::fmodstudio ) +if( TARGET ll::fmodstudio ) + target_link_libraries( llaudio ll::fmodstudio ) endif() \ No newline at end of file diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index 0fd2581dd4..c934d47cc9 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -13,11 +13,6 @@ include(Copy3rdPartyLibs) include(ZLIBNG) include(URIPARSER) -# add_executable(lltreeiterators lltreeiterators.cpp) -# -# target_link_libraries(lltreeiterators -# ${LLCOMMON_LIBRARIES}) - set(llcommon_SOURCE_FILES indra_constants.cpp llallocator.cpp @@ -279,14 +274,14 @@ endif(LLCOMMON_LINK_SHARED) target_link_libraries( llcommon - apr::apr - expat::expat - jsoncpp::jsoncpp - zlib-ng::zlib-ng + ll::apr + ll::expat + ll::jsoncpp + ll::zlib-ng ${WINDOWS_LIBRARIES} - boost::boost + ll::boost ${GOOGLE_PERFTOOLS_LIBRARIES} - uriparser::uriparser + ll::uriparser ) set_target_include_dirs( llcommon ${CMAKE_CURRENT_SOURCE_DIR}) @@ -310,7 +305,7 @@ if (LL_TESTS) #set(TEST_DEBUG on) set(test_libs llcommon ${WINDOWS_LIBRARIES} - googlemock::googlemock + ll::googlemock ) LL_ADD_INTEGRATION_TEST(bitpack "" "${test_libs}") LL_ADD_INTEGRATION_TEST(classic_callback "" "${test_libs}") diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt index 271ddbcd2d..041c90b174 100644 --- a/indra/llcorehttp/CMakeLists.txt +++ b/indra/llcorehttp/CMakeLists.txt @@ -87,9 +87,9 @@ add_library (llcorehttp ${llcorehttp_SOURCE_FILES}) target_link_libraries( llcorehttp llcommon - libcurl::libcurl - openssl::openssl - nghttp2::nghttp2 + ll::libcurl + ll::openssl + ll::nghttp2 ) set_target_include_dirs( llcorehttp ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/indra/llimage/CMakeLists.txt b/indra/llimage/CMakeLists.txt index 5387a22601..7b3c1110a2 100644 --- a/indra/llimage/CMakeLists.txt +++ b/indra/llimage/CMakeLists.txt @@ -62,9 +62,8 @@ target_link_libraries(llimage llfilesystem llmath llcommon - zlib-ng::zlib-ng - libpng::libpng - jpeglib::jpeglib + ll::libpng + ll::jpeglib ) # Add tests diff --git a/indra/llimagej2coj/CMakeLists.txt b/indra/llimagej2coj/CMakeLists.txt index 6880b09025..ff7d75b709 100644 --- a/indra/llimagej2coj/CMakeLists.txt +++ b/indra/llimagej2coj/CMakeLists.txt @@ -27,6 +27,6 @@ add_library (llimagej2coj ${llimagej2coj_SOURCE_FILES}) target_link_libraries( llimagej2coj llcommon llimage - openjpeg::openjpeg + ll::openjpeg ) diff --git a/indra/llkdu/CMakeLists.txt b/indra/llkdu/CMakeLists.txt index 780951cf9d..674ad04919 100644 --- a/indra/llkdu/CMakeLists.txt +++ b/indra/llkdu/CMakeLists.txt @@ -42,7 +42,7 @@ set_source_files_properties(${llkdu_SOURCE_FILES} if (USE_KDU) add_library (llkdu ${llkdu_SOURCE_FILES}) - target_link_libraries(llkdu kdu::kdu llimage llcommon) + target_link_libraries(llkdu ll::kdu llimage llcommon) set_target_include_dirs( llkdu ${CMAKE_CURRENT_SOURCE_DIR}) # Add tests @@ -62,7 +62,7 @@ if (USE_KDU) ) get_property( llimage_include_dir TARGET llimage PROPERTY INTERFACE_INCLUDE_DIRECTORIES ) - set_property( SOURCE ${llkdu_TEST_SOURCE_FILES} PROPERTY LL_TEST_ADDITIONAL_LIBRARIES kdu::kdu llcommon) + set_property( SOURCE ${llkdu_TEST_SOURCE_FILES} PROPERTY LL_TEST_ADDITIONAL_LIBRARIES ll::kdu llcommon) set_property( SOURCE ${llkdu_TEST_SOURCE_FILES} PROPERTY LL_TEST_ADDITIONAL_INCLUDE_DIRS ${llimage_include_dir}) LL_ADD_PROJECT_UNIT_TESTS(llkdu "${llkdu_TEST_SOURCE_FILES}") diff --git a/indra/llmessage/CMakeLists.txt b/indra/llmessage/CMakeLists.txt index 6be0262b25..334a55348c 100644 --- a/indra/llmessage/CMakeLists.txt +++ b/indra/llmessage/CMakeLists.txt @@ -200,14 +200,10 @@ add_library (llmessage ${llmessage_SOURCE_FILES}) target_link_libraries( llmessage - libcurl::libcurl llcommon llfilesystem llmath - openssl::openssl - xmlrpc-epi::xmlrpc-epi llcorehttp - nghttp2::nghttp2 ) set_target_include_dirs( llmessage ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt index fb81f19206..79b54c9df8 100644 --- a/indra/llprimitive/CMakeLists.txt +++ b/indra/llprimitive/CMakeLists.txt @@ -63,8 +63,8 @@ target_link_libraries(llprimitive llxml llcharacter llphysicsextensions - colladadom::colladadom - pcre::pcre + ll::colladadom + ll::pcre ) #add unit tests diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt index cb98886f9b..8f9089f4b7 100644 --- a/indra/llrender/CMakeLists.txt +++ b/indra/llrender/CMakeLists.txt @@ -100,8 +100,8 @@ target_link_libraries(llrender llfilesystem llxml llwindow - sdl::sdl - freetype::freetype + ll::sdl + ll::freetype OpenGL::GL OpenGL::GLU ) diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 04103b1a94..9035095d5f 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -265,14 +265,14 @@ target_link_libraries(llui llfilesystem llxml llmath - hunspell::hunspell + ll::hunspell llcommon ) # Add tests if(LL_TESTS) include(LLAddBuildTest) - set(test_libs llmessage llcorehttp llxml llrender llcommon hunspell::hunspell ${WINDOWS_LIBRARIES}) + set(test_libs llmessage llcorehttp llxml llrender llcommon ll::hunspell ${WINDOWS_LIBRARIES}) SET(llui_TEST_SOURCE_FILES llurlmatch.cpp @@ -282,7 +282,7 @@ if(LL_TESTS) # INTEGRATION TESTS if(NOT LINUX) - set(test_libs llui llmessage llcorehttp llxml llrender llcommon hunspell::hunspell ${WINDOWS_LIBRARIES}) + set(test_libs llui llmessage llcorehttp llxml llrender llcommon ll::hunspell ${WINDOWS_LIBRARIES}) LL_ADD_INTEGRATION_TEST(llurlentry llurlentry.cpp "${test_libs}") endif(NOT LINUX) endif(LL_TESTS) diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 2b5a03d219..c997bbdf59 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -174,5 +174,5 @@ endif (llwindow_HEADER_FILES) ${viewer_SOURCE_FILES} ) -target_link_libraries (llwindow ${llwindow_LINK_LIBRARIES} sdl::sdl) +target_link_libraries (llwindow ${llwindow_LINK_LIBRARIES} ll::sdl) set_target_include_dirs(llwindow ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/indra/llxml/CMakeLists.txt b/indra/llxml/CMakeLists.txt index b585dbd26e..5953cb79e8 100644 --- a/indra/llxml/CMakeLists.txt +++ b/indra/llxml/CMakeLists.txt @@ -33,7 +33,7 @@ target_link_libraries( llxml llfilesystem llmath llcommon - expat::expat + ll::expat ) set_target_include_dirs( llxml ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/indra/media_plugins/libvlc/CMakeLists.txt b/indra/media_plugins/libvlc/CMakeLists.txt index cae1c4f92b..a3c1c4ef99 100644 --- a/indra/media_plugins/libvlc/CMakeLists.txt +++ b/indra/media_plugins/libvlc/CMakeLists.txt @@ -32,7 +32,7 @@ add_library(media_plugin_libvlc target_link_libraries(media_plugin_libvlc media_plugin_base - libvlc::libvlc + ll::libvlc ) if (WINDOWS) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 9b48e5064e..2be83c9900 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1968,8 +1968,8 @@ target_link_libraries(${VIEWER_BINARY_NAME} llcorehttp llcommon ${viewer_LIBRARIES} - glod::glod - ndof::ndof + ll::glod + ll::ndof ${SMARTHEAP_LIBRARY} ${UI_LIBRARIES} ${WINDOWS_LIBRARIES} @@ -1978,18 +1978,13 @@ target_link_libraries(${VIEWER_BINARY_NAME} llappearance ${LLPHYSICS_LIBRARIES} ${LLPHYSICSEXTENSIONS_LIBRARIES} - bugsplat::bugsplat + ll::bugsplat ) -if( TARGET nvapi::nvapi ) - target_link_libraries(${VIEWER_BINARY_NAME} nvapi::nvapi ) +if( TARGET ll::nvapi ) + target_link_libraries(${VIEWER_BINARY_NAME} ll::nvapi ) endif() - -if (USE_BUGSPLAT) - -endif (USE_BUGSPLAT) - set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH "Path to artwork files.") diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 6d04c3b76b..1c2961a18a 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -74,7 +74,7 @@ target_link_libraries(lltest llxml llcommon llcorehttp - googlemock::googlemock + ll::googlemock ${WINDOWS_LIBRARIES} ${DL_LIBRARY} ) -- cgit v1.3 From bb85651d987a6cb969de7dd7c2b130411de6203c Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Apr 2022 15:29:02 +0200 Subject: Create a new target ll::oslibrary to link against libs specific to the OS compiled on. This gets rid of the a few OS specific set and uses variables (which some even seemed mostly duplicate like WINDOWS_LIBRARIES ans UI_LIBRARIES) and it also solves the problem of having them to tack on every target, as of no they come as a transitive dependency from llcommon --- indra/cmake/LLAddBuildTest.cmake | 2 - indra/cmake/Linking.cmake | 70 ++++++++++++++-------- .../llimage_libtest/CMakeLists.txt | 14 ----- .../integration_tests/llui_libtest/CMakeLists.txt | 16 ----- indra/llcommon/CMakeLists.txt | 13 +--- indra/llcorehttp/CMakeLists.txt | 2 - indra/llfilesystem/CMakeLists.txt | 9 +-- indra/llinventory/CMakeLists.txt | 2 +- indra/llmessage/CMakeLists.txt | 17 +----- indra/llplugin/slplugin/CMakeLists.txt | 8 --- indra/llui/CMakeLists.txt | 4 +- indra/llxml/CMakeLists.txt | 1 - indra/newview/CMakeLists.txt | 16 ----- indra/test/CMakeLists.txt | 2 - 14 files changed, 52 insertions(+), 124 deletions(-) (limited to 'indra/test') diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index a3c873b389..9412475640 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -46,8 +46,6 @@ INCLUDE(GoogleMock) SET(alltest_LIBRARIES llcommon ll::googlemock - ${PTHREAD_LIBRARY} - ${WINDOWS_LIBRARIES} ) IF(NOT "${project}" STREQUAL "llmath") # add llmath as a dep unless the tested module *is* llmath! diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index 4a57a6a3ef..ccbb27ca42 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -55,32 +55,50 @@ endif (NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release") link_directories(${AUTOBUILD_LIBS_INSTALL_DIRS}) +create_target(ll::oslibraries) + if (LINUX) - set(DL_LIBRARY dl) - set(PTHREAD_LIBRARY pthread) -else (LINUX) - set(DL_LIBRARY "") - set(PTHREAD_LIBRARY "") -endif (LINUX) + set_target_libraries( ll::oslibraries + dl + pthread + rt) +elseif (WINDOWS) + set_target_libraries( ll::oslibraries + advapi32 + shell32 + ws2_32 + mswsock + psapi + winmm + netapi32 + wldap32 + gdi32 + user32 + ole32 + dbghelp + legacy_stdio_definitions + ) +else() + include(CMakeFindFrameworks) + find_library(COREFOUNDATION_LIBRARY CoreFoundation) + find_library(CARBON_LIBRARY Carbon) + find_library(COCOA_LIBRARY Cocoa) + find_library(IOKIT_LIBRARY IOKit) + + find_library(AGL_LIBRARY AGL) + find_library(APPKIT_LIBRARY AppKit) + find_library(COREAUDIO_LIBRARY CoreAudio) + + set_target_libraries( ll::oslibraries + ${COCOA_LIBRARY} + ${IOKIT_LIBRARY} + ${COREFOUNDATION_LIBRARY} + ${CARBON_LIBRARY} + ${AGL_LIBRARY} + ${APPKITT_LIBRARY} + ${COREAUDIO_LIBRARY} + ) +endif() + -if (WINDOWS) - set(WINDOWS_LIBRARIES - advapi32 - shell32 - ws2_32 - mswsock - psapi - winmm - netapi32 - wldap32 - gdi32 - user32 - ole32 - dbghelp - ) -else (WINDOWS) - set(WINDOWS_LIBRARIES "") -endif (WINDOWS) - -mark_as_advanced(DL_LIBRARY PTHREAD_LIBRARY WINDOWS_LIBRARIES) diff --git a/indra/integration_tests/llimage_libtest/CMakeLists.txt b/indra/integration_tests/llimage_libtest/CMakeLists.txt index 9ac3498d09..00da3e7efc 100644 --- a/indra/integration_tests/llimage_libtest/CMakeLists.txt +++ b/indra/integration_tests/llimage_libtest/CMakeLists.txt @@ -48,19 +48,6 @@ set_target_properties(llimage_libtest FALSE ) -# OS-specific libraries -if (DARWIN) - include(CMakeFindFrameworks) - find_library(COREFOUNDATION_LIBRARY CoreFoundation) - set(OS_LIBRARIES ${COREFOUNDATION_LIBRARY}) -elseif (WINDOWS) - set(OS_LIBRARIES) -elseif (LINUX) - set(OS_LIBRARIES) -else (DARWIN) - message(FATAL_ERROR "Unknown platform") -endif (DARWIN) - # Libraries on which this application depends on # Sort by high-level to low-level target_link_libraries(llimage_libtest @@ -71,7 +58,6 @@ target_link_libraries(llimage_libtest llimage llkdu llimagej2coj - ${OS_LIBRARIES} ) if (DARWIN) diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt index baa814fb8b..ef6107fe66 100644 --- a/indra/integration_tests/llui_libtest/CMakeLists.txt +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -57,21 +57,6 @@ list(APPEND llui_libtest_SOURCE_FILES ${llui_libtest_HEADER_FILES}) add_executable(llui_libtest ${llui_libtest_SOURCE_FILES}) -# Link with OS-specific libraries for LLWindow dependency -if (DARWIN) - find_library(COCOA_LIBRARY Cocoa) - find_library(IOKIT_LIBRARY IOKit) - set(OS_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY}) -elseif (WINDOWS) - #ll_stack_trace needs this now... - list(APPEND WINDOWS_LIBRARIES dbghelp) - set(OS_LIBRARIES ${WINDOWS_LIBRARIES}) -elseif (LINUX) - set(OS_LIBRARIES) -else (DARWIN) - message(FATAL_ERROR "unknown platform") -endif (DARWIN) - # Libraries on which this library depends, needed for Linux builds # Sort by high-level to low-level target_link_libraries(llui_libtest @@ -83,7 +68,6 @@ target_link_libraries(llui_libtest llimage llkdu llimagej2coj - ${OS_LIBRARIES} ) if (WINDOWS) diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index c934d47cc9..4673630a8e 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -278,21 +278,15 @@ target_link_libraries( ll::expat ll::jsoncpp ll::zlib-ng - ${WINDOWS_LIBRARIES} ll::boost ${GOOGLE_PERFTOOLS_LIBRARIES} ll::uriparser + ll::oslibraries ) set_target_include_dirs( llcommon ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories( llcommon PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) -if (DARWIN) - include(CMakeFindFrameworks) - find_library(CARBON_LIBRARY Carbon) - target_link_libraries(llcommon ${CARBON_LIBRARY}) -endif (DARWIN) - add_dependencies(llcommon stage_third_party_libs) if (LL_TESTS) @@ -303,10 +297,7 @@ if (LL_TESTS) LL_ADD_PROJECT_UNIT_TESTS(llcommon "${llcommon_TEST_SOURCE_FILES}") #set(TEST_DEBUG on) - set(test_libs llcommon - ${WINDOWS_LIBRARIES} - ll::googlemock - ) + set(test_libs llcommon) LL_ADD_INTEGRATION_TEST(bitpack "" "${test_libs}") LL_ADD_INTEGRATION_TEST(classic_callback "" "${test_libs}") LL_ADD_INTEGRATION_TEST(commonmisc "" "${test_libs}") diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt index 041c90b174..0d45814d86 100644 --- a/indra/llcorehttp/CMakeLists.txt +++ b/indra/llcorehttp/CMakeLists.txt @@ -122,7 +122,6 @@ if (LL_TESTS AND LLCOREHTTP_TESTS) # set(TEST_DEBUG on) set(test_libs llcorehttp - ${WINDOWS_LIBRARIES} llmessage llcommon ) @@ -188,7 +187,6 @@ endif (DARWIN) set(example_libs ${LEGACY_STDIO_LIBS} llcorehttp - ${WINDOWS_LIBRARIES} llmessage llcommon ) diff --git a/indra/llfilesystem/CMakeLists.txt b/indra/llfilesystem/CMakeLists.txt index dfc290a48b..7274c3b450 100644 --- a/indra/llfilesystem/CMakeLists.txt +++ b/indra/llfilesystem/CMakeLists.txt @@ -65,13 +65,6 @@ target_link_libraries(llfilesystem ) set_target_include_dirs( llfilesystem ${CMAKE_CURRENT_SOURCE_DIR}) -if (DARWIN) - include(CMakeFindFrameworks) - find_library(COCOA_LIBRARY Cocoa) - target_link_libraries(llfilesystem ${COCOA_LIBRARY}) -endif (DARWIN) - - # Add tests if (LL_TESTS) include(LLAddBuildTest) @@ -87,7 +80,7 @@ if (LL_TESTS) LL_ADD_PROJECT_UNIT_TESTS(llfilesystem "${llfilesystem_TEST_SOURCE_FILES}") # INTEGRATION TESTS - set(test_libs llmath llcommon llfilesystem ${WINDOWS_LIBRARIES}) + set(test_libs llmath llcommon llfilesystem ) # TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests. LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}") diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt index ee14f0a46e..7d193f5512 100644 --- a/indra/llinventory/CMakeLists.txt +++ b/indra/llinventory/CMakeLists.txt @@ -71,7 +71,7 @@ if (LL_TESTS) LL_ADD_PROJECT_UNIT_TESTS(llinventory "${llinventory_TEST_SOURCE_FILES}") #set(TEST_DEBUG on) - set(test_libs llinventory llmath llcorehttp llfilesystem ${WINDOWS_LIBRARIES}) + set(test_libs llinventory llmath llcorehttp llfilesystem ) LL_ADD_INTEGRATION_TEST(inventorymisc "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llparcel "" "${test_libs}") endif (LL_TESTS) diff --git a/indra/llmessage/CMakeLists.txt b/indra/llmessage/CMakeLists.txt index 5f48ea60dc..20435d991a 100644 --- a/indra/llmessage/CMakeLists.txt +++ b/indra/llmessage/CMakeLists.txt @@ -220,27 +220,14 @@ if (LL_TESTS) LL_ADD_PROJECT_UNIT_TESTS(llmessage "${llmessage_TEST_SOURCE_FILES}") # set(TEST_DEBUG on) - -if (LINUX) - set(test_libs - ${WINDOWS_LIBRARIES} - llfilesystem - llmath - llcorehttp - llmessage - llcommon - rt - ) -else (LINUX) + set(test_libs - ${WINDOWS_LIBRARIES} llfilesystem llmath llcorehttp llmessage llcommon - ) -endif(LINUX) + ) #LL_ADD_INTEGRATION_TEST(llavatarnamecache "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llhost "" "${test_libs}") diff --git a/indra/llplugin/slplugin/CMakeLists.txt b/indra/llplugin/slplugin/CMakeLists.txt index 7725489c3e..05e311f7e4 100644 --- a/indra/llplugin/slplugin/CMakeLists.txt +++ b/indra/llplugin/slplugin/CMakeLists.txt @@ -5,12 +5,6 @@ include(LLCommon) include(Linking) include(PluginAPI) -if (DARWIN) - include(CMakeFindFrameworks) - find_library(COCOA_LIBRARY Cocoa) -endif (DARWIN) - - ### SLPlugin set(SLPlugin_SOURCE_FILES @@ -60,8 +54,6 @@ target_link_libraries(SLPlugin ) if (DARWIN) - # Mac version needs to link against Carbon - target_link_libraries(SLPlugin ${COCOA_LIBRARY}) # Make sure the app bundle has a Resources directory (it will get populated by viewer-manifest.py later) add_custom_command( TARGET SLPlugin POST_BUILD diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 9035095d5f..5e71b673a5 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -272,7 +272,7 @@ target_link_libraries(llui # Add tests if(LL_TESTS) include(LLAddBuildTest) - set(test_libs llmessage llcorehttp llxml llrender llcommon ll::hunspell ${WINDOWS_LIBRARIES}) + set(test_libs llmessage llcorehttp llxml llrender llcommon ll::hunspell) SET(llui_TEST_SOURCE_FILES llurlmatch.cpp @@ -282,7 +282,7 @@ if(LL_TESTS) # INTEGRATION TESTS if(NOT LINUX) - set(test_libs llui llmessage llcorehttp llxml llrender llcommon ll::hunspell ${WINDOWS_LIBRARIES}) + set(test_libs llui llmessage llcorehttp llxml llrender llcommon ll::hunspell ) LL_ADD_INTEGRATION_TEST(llurlentry llurlentry.cpp "${test_libs}") endif(NOT LINUX) endif(LL_TESTS) diff --git a/indra/llxml/CMakeLists.txt b/indra/llxml/CMakeLists.txt index 5953cb79e8..fc680e6da5 100644 --- a/indra/llxml/CMakeLists.txt +++ b/indra/llxml/CMakeLists.txt @@ -55,7 +55,6 @@ if (LL_TESTS) llxml llmath llcommon - ${WINDOWS_LIBRARIES} ) LL_ADD_INTEGRATION_TEST(llcontrol "" "${test_libs}") diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 2be83c9900..e039828221 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1372,19 +1372,6 @@ if (DARWIN) COMPILE_FLAGS "-fmodules -fcxx-modules -Wno-nullability-completeness" ) - find_library(AGL_LIBRARY AGL) - find_library(APPKIT_LIBRARY AppKit) - find_library(COCOA_LIBRARY Cocoa) - find_library(IOKIT_LIBRARY IOKit) - find_library(COREAUDIO_LIBRARY CoreAudio) - - set(viewer_LIBRARIES - ${COCOA_LIBRARY} - ${AGL_LIBRARY} - ${IOKIT_LIBRARY} - ${COREAUDIO_LIBRARY} - ) - if (USE_BUGSPLAT) list(APPEND viewer_LIBRARIES bugsplat::bugsplat @@ -1558,7 +1545,6 @@ if (WINDOWS) # see EXP-1765 - theory is opengl32.lib needs to be included before gdi32.lib (windows libs) set(viewer_LIBRARIES opengl32 - ${WINDOWS_LIBRARIES} comdlg32 dxguid kernel32 @@ -1972,7 +1958,6 @@ target_link_libraries(${VIEWER_BINARY_NAME} ll::ndof ${SMARTHEAP_LIBRARY} ${UI_LIBRARIES} - ${WINDOWS_LIBRARIES} lllogin llprimitive llappearance @@ -2358,7 +2343,6 @@ if (LL_TESTS) set(test_libs - ${WINDOWS_LIBRARIES} llfilesystem llmath llcommon diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 1c2961a18a..822574210f 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -75,8 +75,6 @@ target_link_libraries(lltest llcommon llcorehttp ll::googlemock - ${WINDOWS_LIBRARIES} - ${DL_LIBRARY} ) if (WINDOWS) -- cgit v1.3 From b9f94c08977ff76f41a32a2bb9f25883e578eea3 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Apr 2022 15:33:32 +0200 Subject: Now there is a oslibrary target get rid of some more obsolete vars: LEGACY_STDIO_LIBS (was only used for Windows) PTHREAD_LIBRARY (only Linux) LLDATABASE_LIBRARIES (that one was supposed for Linux, but never needed anyway) --- indra/CMakeLists.txt | 4 ---- indra/cmake/LLAddBuildTest.cmake | 2 -- indra/cmake/Linking.cmake | 2 +- indra/integration_tests/llimage_libtest/CMakeLists.txt | 1 - indra/integration_tests/llui_libtest/CMakeLists.txt | 1 - indra/llcorehttp/CMakeLists.txt | 1 - indra/llplugin/slplugin/CMakeLists.txt | 1 - indra/newview/CMakeLists.txt | 1 - indra/test/CMakeLists.txt | 2 -- 9 files changed, 1 insertion(+), 14 deletions(-) (limited to 'indra/test') diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt index d06ea58549..c4a1ca918f 100644 --- a/indra/CMakeLists.txt +++ b/indra/CMakeLists.txt @@ -17,10 +17,6 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") include(Variables) include(BuildVersion) -set(LEGACY_STDIO_LIBS) -if (WINDOWS) - set(LEGACY_STDIO_LIBS legacy_stdio_definitions) -endif (WINDOWS) if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index 9412475640..1f63fed613 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -204,10 +204,8 @@ FUNCTION(LL_ADD_INTEGRATION_TEST ) SET(libraries - ${LEGACY_STDIO_LIBS} ${library_dependencies} ll::googlemock - ${PTHREAD_LIBRARY} ) # Add test executable build target diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index ccbb27ca42..4d99026dfc 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -88,7 +88,7 @@ else() find_library(AGL_LIBRARY AGL) find_library(APPKIT_LIBRARY AppKit) find_library(COREAUDIO_LIBRARY CoreAudio) - + set_target_libraries( ll::oslibraries ${COCOA_LIBRARY} ${IOKIT_LIBRARY} diff --git a/indra/integration_tests/llimage_libtest/CMakeLists.txt b/indra/integration_tests/llimage_libtest/CMakeLists.txt index 00da3e7efc..a027860c0b 100644 --- a/indra/integration_tests/llimage_libtest/CMakeLists.txt +++ b/indra/integration_tests/llimage_libtest/CMakeLists.txt @@ -51,7 +51,6 @@ set_target_properties(llimage_libtest # Libraries on which this application depends on # Sort by high-level to low-level target_link_libraries(llimage_libtest - ${LEGACY_STDIO_LIBS} llcommon llfilesystem llmath diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt index ef6107fe66..51fe35df43 100644 --- a/indra/integration_tests/llui_libtest/CMakeLists.txt +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -60,7 +60,6 @@ add_executable(llui_libtest ${llui_libtest_SOURCE_FILES}) # Libraries on which this library depends, needed for Linux builds # Sort by high-level to low-level target_link_libraries(llui_libtest - ${LEGACY_STDIO_LIBS} llui llinventory llmessage diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt index 0d45814d86..e2bd9ae5b8 100644 --- a/indra/llcorehttp/CMakeLists.txt +++ b/indra/llcorehttp/CMakeLists.txt @@ -185,7 +185,6 @@ endif (DARWIN) ) set(example_libs - ${LEGACY_STDIO_LIBS} llcorehttp llmessage llcommon diff --git a/indra/llplugin/slplugin/CMakeLists.txt b/indra/llplugin/slplugin/CMakeLists.txt index 05e311f7e4..9daf7d327c 100644 --- a/indra/llplugin/slplugin/CMakeLists.txt +++ b/indra/llplugin/slplugin/CMakeLists.txt @@ -46,7 +46,6 @@ set_target_properties(SLPlugin endif () target_link_libraries(SLPlugin - ${LEGACY_STDIO_LIBS} llplugin llmessage llcommon diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index e039828221..9af6ddcca6 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1937,7 +1937,6 @@ endif (WINDOWS) # modern version. target_link_libraries(${VIEWER_BINARY_NAME} - ${LEGACY_STDIO_LIBS} llaudio llcharacter llimage diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 822574210f..23f80d1ef9 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -65,8 +65,6 @@ if (USE_BUGSPLAT) endif (USE_BUGSPLAT) target_link_libraries(lltest - ${LEGACY_STDIO_LIBS} - ${LLDATABASE_LIBRARIES} llinventory llmessage llmath -- cgit v1.3 From 3ac18ad9932b4e2fda8e850bd18a524fb1593520 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Apr 2022 22:08:40 +0200 Subject: Streamline bugsplat target: - Fix usage of bugsplat::bugsplat by using ll::bugsplat - Use bugsplat define by importing target not by using hand crafted magic --- indra/cmake/bugsplat.cmake | 8 +++++--- indra/llcommon/CMakeLists.txt | 6 +----- indra/test/CMakeLists.txt | 4 ---- 3 files changed, 6 insertions(+), 12 deletions(-) (limited to 'indra/test') diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake index af2d7bd9f2..9057ae2272 100644 --- a/indra/cmake/bugsplat.cmake +++ b/indra/cmake/bugsplat.cmake @@ -16,20 +16,22 @@ if (USE_BUGSPLAT) include(Prebuilt) use_prebuilt_binary(bugsplat) if (WINDOWS) - set_target_libraries( bugsplat::bugsplat + set_target_libraries( ll::bugsplat ${ARCH_PREBUILT_DIRS_RELEASE}/bugsplat.lib ) elseif (DARWIN) find_library(BUGSPLAT_LIBRARIES BugsplatMac REQUIRED NO_DEFAULT_PATH PATHS "${ARCH_PREBUILT_DIRS_RELEASE}") - set_target_libraries( bugsplat::bugsplat + set_target_libraries( ll::bugsplat ${BUGSPLAT_LIBRARIES} ) else (WINDOWS) message(FATAL_ERROR "BugSplat is not supported; add -DUSE_BUGSPLAT=OFF") endif (WINDOWS) - set(BUGSPLAT_DB "" CACHE STRING "BugSplat crash database name") + if( NOT BUGSPLAT_DB ) + message( FATAL_ERROR "You need to set BUGSPLAT_DB when setting USE_BUGSPLAT" ) + endif() set_target_include_dirs( ll::bugsplat ${LIBS_PREBUILT_DIR}/include/bugsplat) set_property( TARGET ll::bugsplat APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS LL_BUGSPLAT) diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index 11849c3766..d5c57bbeaf 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -247,11 +247,6 @@ set(llcommon_HEADER_FILES set_source_files_properties(${llcommon_HEADER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) -if (USE_BUGSPLAT) - set_source_files_properties(${llcommon_SOURCE_FILES} - PROPERTIES COMPILE_DEFINITIONS "${BUGSPLAT_DEFINE}") -endif (USE_BUGSPLAT) - list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES}) if(LLCOMMON_LINK_SHARED) @@ -275,6 +270,7 @@ endif(LLCOMMON_LINK_SHARED) target_link_libraries( llcommon ll::apr + ll::bugsplat ll::expat ll::jsoncpp ll::zlib-ng diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 23f80d1ef9..aae299e6ca 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -60,10 +60,6 @@ list(APPEND test_SOURCE_FILES ${test_HEADER_FILES}) add_executable(lltest ${test_SOURCE_FILES}) -if (USE_BUGSPLAT) - set_target_properties(lltest PROPERTIES COMPILE_DEFINITIONS "${BUGSPLAT_DEFINE}") -endif (USE_BUGSPLAT) - target_link_libraries(lltest llinventory llmessage -- cgit v1.3 From 283c2a20cc4ef856076d287303c7143332b201fe Mon Sep 17 00:00:00 2001 From: Nicky Date: Sun, 1 May 2022 00:38:40 +0200 Subject: Remove setting of HEADER_FILE_ONLY on .h* files, cmake automatically sets the property on those. --- indra/cmake/CMakeLists.txt | 3 --- indra/cmake/LLAddBuildTest.cmake | 1 - indra/integration_tests/llimage_libtest/CMakeLists.txt | 3 --- indra/integration_tests/llui_libtest/CMakeLists.txt | 3 --- indra/linux_crash_logger/CMakeLists.txt | 3 --- indra/llappearance/CMakeLists.txt | 3 --- indra/llaudio/CMakeLists.txt | 3 --- indra/llcharacter/CMakeLists.txt | 3 --- indra/llcommon/CMakeLists.txt | 3 --- indra/llcorehttp/CMakeLists.txt | 5 ----- indra/llcrashlogger/CMakeLists.txt | 3 --- indra/llfilesystem/CMakeLists.txt | 3 --- indra/llimage/CMakeLists.txt | 3 --- indra/llimagej2coj/CMakeLists.txt | 3 --- indra/llinventory/CMakeLists.txt | 3 --- indra/llkdu/CMakeLists.txt | 4 ---- indra/llmath/CMakeLists.txt | 3 --- indra/llmessage/CMakeLists.txt | 3 --- indra/llplugin/CMakeLists.txt | 4 ---- indra/llplugin/slplugin/CMakeLists.txt | 2 -- indra/llprimitive/CMakeLists.txt | 3 --- indra/llrender/CMakeLists.txt | 3 --- indra/llui/CMakeLists.txt | 3 --- indra/llwindow/CMakeLists.txt | 3 --- indra/llxml/CMakeLists.txt | 3 --- indra/media_plugins/cef/CMakeLists.txt | 3 --- indra/newview/CMakeLists.txt | 10 +--------- indra/test/CMakeLists.txt | 3 --- indra/viewer_components/login/CMakeLists.txt | 3 --- 29 files changed, 1 insertion(+), 94 deletions(-) (limited to 'indra/test') diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index c8e71b604f..0a084d8a1d 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -75,9 +75,6 @@ set(master_SOURCE_FILES source_group("Master Rules" FILES ${master_SOURCE_FILES}) -set_source_files_properties(${cmake_SOURCE_FILES} ${master_SOURCE_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - add_library(cmake cmake_dummy.cpp ${cmake_SOURCE_FILES} diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index a97d2584ae..d3047ddc82 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -87,7 +87,6 @@ INCLUDE(GoogleMock) # Headers GET_OPT_SOURCE_FILE_PROPERTY(${name}_test_additional_HEADER_FILES ${source} LL_TEST_ADDITIONAL_HEADER_FILES) SET(${name}_test_HEADER_FILES ${name}.h ${${name}_test_additional_HEADER_FILES}) - set_source_files_properties(${${name}_test_HEADER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) LIST(APPEND ${name}_test_SOURCE_FILES ${${name}_test_HEADER_FILES}) IF(LL_TEST_VERBOSE) MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_HEADER_FILES ${${name}_test_HEADER_FILES}") diff --git a/indra/integration_tests/llimage_libtest/CMakeLists.txt b/indra/integration_tests/llimage_libtest/CMakeLists.txt index a027860c0b..2f16fc6a1c 100644 --- a/indra/integration_tests/llimage_libtest/CMakeLists.txt +++ b/indra/integration_tests/llimage_libtest/CMakeLists.txt @@ -31,9 +31,6 @@ set(llimage_libtest_HEADER_FILES llimage_libtest.h ) -set_source_files_properties(${llimage_libtest_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llimage_libtest_SOURCE_FILES ${llimage_libtest_HEADER_FILES}) add_executable(llimage_libtest diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt index 51fe35df43..849eda1acf 100644 --- a/indra/integration_tests/llui_libtest/CMakeLists.txt +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -50,9 +50,6 @@ set(llui_libtest_HEADER_FILES llwidgetreg.h ) -set_source_files_properties(${llui_libtest_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llui_libtest_SOURCE_FILES ${llui_libtest_HEADER_FILES}) add_executable(llui_libtest ${llui_libtest_SOURCE_FILES}) diff --git a/indra/linux_crash_logger/CMakeLists.txt b/indra/linux_crash_logger/CMakeLists.txt index 594cb34ce4..1793aa82b9 100644 --- a/indra/linux_crash_logger/CMakeLists.txt +++ b/indra/linux_crash_logger/CMakeLists.txt @@ -45,9 +45,6 @@ set(linux_crash_logger_HEADER_FILES llcrashloggerlinux.h ) -set_source_files_properties(${linux_crash_logger_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND linux_crash_logger_SOURCE_FILES ${linux_crash_logger_HEADER_FILES} ) diff --git a/indra/llappearance/CMakeLists.txt b/indra/llappearance/CMakeLists.txt index 4516a95d80..75c0e276eb 100644 --- a/indra/llappearance/CMakeLists.txt +++ b/indra/llappearance/CMakeLists.txt @@ -52,9 +52,6 @@ set(llappearance_HEADER_FILES llavatarappearancedefines.h ) -set_source_files_properties(${llappearance_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llappearance_SOURCE_FILES ${llappearance_HEADER_FILES}) add_library (llappearance ${llappearance_SOURCE_FILES}) diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt index b2b479b36f..d6846ddf99 100644 --- a/indra/llaudio/CMakeLists.txt +++ b/indra/llaudio/CMakeLists.txt @@ -51,9 +51,6 @@ if (TARGET ll::openal) ) endif () -set_source_files_properties(${llaudio_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llaudio_SOURCE_FILES ${llaudio_HEADER_FILES}) add_library (llaudio ${llaudio_SOURCE_FILES}) diff --git a/indra/llcharacter/CMakeLists.txt b/indra/llcharacter/CMakeLists.txt index 38720eb5da..bc45eb474a 100644 --- a/indra/llcharacter/CMakeLists.txt +++ b/indra/llcharacter/CMakeLists.txt @@ -57,9 +57,6 @@ set(llcharacter_HEADER_FILES llvisualparam.h ) -set_source_files_properties(${llcharacter_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llcharacter_SOURCE_FILES ${llcharacter_HEADER_FILES}) add_library (llcharacter ${llcharacter_SOURCE_FILES}) diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index 61d6196f50..f3e4f7f7f9 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -244,9 +244,6 @@ set(llcommon_HEADER_FILES StackWalker.h ) -set_source_files_properties(${llcommon_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES}) if(LLCOMMON_LINK_SHARED) diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt index f93104b321..481e58993a 100644 --- a/indra/llcorehttp/CMakeLists.txt +++ b/indra/llcorehttp/CMakeLists.txt @@ -73,8 +73,6 @@ set(llcorehttp_HEADER_FILES _thread.h ) -set_source_files_properties(${llcorehttp_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) if (DARWIN OR LINUX) # Boost headers define unused members in condition_variable so... set_source_files_properties(${llcorehttp_SOURCE_FILES} @@ -112,9 +110,6 @@ if (LL_TESTS AND LLCOREHTTP_TESTS) tests/test_bufferstream.hpp ) - set_source_files_properties(${llcorehttp_TEST_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llcorehttp_TEST_SOURCE_FILES ${llcorehttp_TEST_HEADER_FILES}) # LL_ADD_PROJECT_UNIT_TESTS(llcorehttp "${llcorehttp_TEST_SOURCE_FILES}") diff --git a/indra/llcrashlogger/CMakeLists.txt b/indra/llcrashlogger/CMakeLists.txt index 0e357b249f..6ac73c0d32 100644 --- a/indra/llcrashlogger/CMakeLists.txt +++ b/indra/llcrashlogger/CMakeLists.txt @@ -17,9 +17,6 @@ set(llcrashlogger_HEADER_FILES llcrashlock.h ) -set_source_files_properties(${llcrashlogger_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llcrashlogger_SOURCE_FILES ${llcrashlogger_HEADER_FILES}) add_library(llcrashlogger ${llcrashlogger_SOURCE_FILES}) diff --git a/indra/llfilesystem/CMakeLists.txt b/indra/llfilesystem/CMakeLists.txt index 537f43007a..9f24f75eab 100644 --- a/indra/llfilesystem/CMakeLists.txt +++ b/indra/llfilesystem/CMakeLists.txt @@ -47,9 +47,6 @@ if (WINDOWS) LIST(APPEND llfilesystem_HEADER_FILES lldir_win32.h) endif (WINDOWS) -set_source_files_properties(${llfilesystem_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llfilesystem_SOURCE_FILES ${llfilesystem_HEADER_FILES}) add_library (llfilesystem ${llfilesystem_SOURCE_FILES}) diff --git a/indra/llimage/CMakeLists.txt b/indra/llimage/CMakeLists.txt index 57703818c9..cc75c463bc 100644 --- a/indra/llimage/CMakeLists.txt +++ b/indra/llimage/CMakeLists.txt @@ -43,9 +43,6 @@ set(llimage_HEADER_FILES llpngwrapper.h ) -set_source_files_properties(${llimage_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llimage_SOURCE_FILES ${llimage_HEADER_FILES}) add_library (llimage ${llimage_SOURCE_FILES}) diff --git a/indra/llimagej2coj/CMakeLists.txt b/indra/llimagej2coj/CMakeLists.txt index ff7d75b709..93e85668dd 100644 --- a/indra/llimagej2coj/CMakeLists.txt +++ b/indra/llimagej2coj/CMakeLists.txt @@ -17,9 +17,6 @@ set(llimagej2coj_HEADER_FILES llimagej2coj.h ) -set_source_files_properties(${llimagej2coj_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llimagej2coj_SOURCE_FILES ${llimagej2coj_HEADER_FILES}) add_library (llimagej2coj ${llimagej2coj_SOURCE_FILES}) diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt index 16724cca53..93a586759f 100644 --- a/indra/llinventory/CMakeLists.txt +++ b/indra/llinventory/CMakeLists.txt @@ -52,9 +52,6 @@ set(llinventory_HEADER_FILES lluserrelations.h ) -set_source_files_properties(${llinventory_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llinventory_SOURCE_FILES ${llinventory_HEADER_FILES}) add_library (llinventory ${llinventory_SOURCE_FILES}) diff --git a/indra/llkdu/CMakeLists.txt b/indra/llkdu/CMakeLists.txt index aef8dea53f..7cd9f5eb24 100644 --- a/indra/llkdu/CMakeLists.txt +++ b/indra/llkdu/CMakeLists.txt @@ -21,14 +21,10 @@ set(llkdu_SOURCE_FILES set(llkdu_HEADER_FILES CMakeLists.txt - llimagej2ckdu.h llkdumem.h ) -set_source_files_properties(${llkdu_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llkdu_SOURCE_FILES ${llkdu_HEADER_FILES}) # Our KDU package is built with KDU_X86_INTRINSICS in its .vcxproj file. diff --git a/indra/llmath/CMakeLists.txt b/indra/llmath/CMakeLists.txt index 9d1b4f07f3..dcc7d4fb2e 100644 --- a/indra/llmath/CMakeLists.txt +++ b/indra/llmath/CMakeLists.txt @@ -95,9 +95,6 @@ set(llmath_HEADER_FILES xform.h ) -set_source_files_properties(${llmath_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llmath_SOURCE_FILES ${llmath_HEADER_FILES}) add_library (llmath ${llmath_SOURCE_FILES}) diff --git a/indra/llmessage/CMakeLists.txt b/indra/llmessage/CMakeLists.txt index 679ff43131..7340752fb2 100644 --- a/indra/llmessage/CMakeLists.txt +++ b/indra/llmessage/CMakeLists.txt @@ -185,9 +185,6 @@ set(llmessage_HEADER_FILES sound_ids.h ) -set_source_files_properties(${llmessage_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llmessage_SOURCE_FILES ${llmessage_HEADER_FILES}) add_library (llmessage ${llmessage_SOURCE_FILES}) diff --git a/indra/llplugin/CMakeLists.txt b/indra/llplugin/CMakeLists.txt index 71801e05af..14a69afe6e 100644 --- a/indra/llplugin/CMakeLists.txt +++ b/indra/llplugin/CMakeLists.txt @@ -20,7 +20,6 @@ set(llplugin_SOURCE_FILES set(llplugin_HEADER_FILES CMakeLists.txt - llpluginclassmedia.h llpluginclassmediaowner.h llplugininstance.h @@ -32,9 +31,6 @@ set(llplugin_HEADER_FILES llpluginsharedmemory.h ) -set_source_files_properties(${llplugin_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - if(NOT ADDRESS_SIZE EQUAL 32) if(WINDOWS) ##add_definitions(/FIXED:NO) diff --git a/indra/llplugin/slplugin/CMakeLists.txt b/indra/llplugin/slplugin/CMakeLists.txt index 1fa4f0346d..5b80d80c9b 100644 --- a/indra/llplugin/slplugin/CMakeLists.txt +++ b/indra/llplugin/slplugin/CMakeLists.txt @@ -21,8 +21,6 @@ if (DARWIN) endif (DARWIN) if (SLPlugin_HEADER_FILES) - set_source_files_properties(${SLPlugin_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) list(APPEND SLPlugin_SOURCE_FILES ${SLPlugin_HEADER_FILES}) endif (SLPlugin_HEADER_FILES) diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt index 698d523dd3..bf35500bad 100644 --- a/indra/llprimitive/CMakeLists.txt +++ b/indra/llprimitive/CMakeLists.txt @@ -47,9 +47,6 @@ set(llprimitive_HEADER_FILES material_codes.h object_flags.h ) - -set_source_files_properties(${llprimitive_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) list(APPEND llprimitive_SOURCE_FILES ${llprimitive_HEADER_FILES}) diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt index bb22a969f5..c5cf1100d5 100644 --- a/indra/llrender/CMakeLists.txt +++ b/indra/llrender/CMakeLists.txt @@ -64,9 +64,6 @@ set(llrender_HEADER_FILES llglcommonfunc.h ) -set_source_files_properties(${llrender_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llrender_SOURCE_FILES ${llrender_HEADER_FILES}) if (BUILD_HEADLESS) diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 144923636b..9108c6143c 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -236,9 +236,6 @@ set(llui_HEADER_FILES llxyvector.h ) -set_source_files_properties(${llui_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - SET(llurlentry_TEST_DEPENDENCIES llurlmatch.cpp llurlregistry.cpp diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index a2044f374c..d09e5387b9 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -142,9 +142,6 @@ if (SOLARIS) ) endif (SOLARIS) -set_source_files_properties(${llwindow_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - if (BUILD_HEADLESS) set(llwindowheadless_SOURCE_FILES llwindowmesaheadless.cpp diff --git a/indra/llxml/CMakeLists.txt b/indra/llxml/CMakeLists.txt index 5ac6aae78e..508c2b919b 100644 --- a/indra/llxml/CMakeLists.txt +++ b/indra/llxml/CMakeLists.txt @@ -21,9 +21,6 @@ set(llxml_HEADER_FILES llxmltree.h ) -set_source_files_properties(${llxml_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND llxml_SOURCE_FILES ${llxml_HEADER_FILES}) add_library (llxml ${llxml_SOURCE_FILES}) diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt index ae3092fff4..d8ae099eca 100644 --- a/indra/media_plugins/cef/CMakeLists.txt +++ b/indra/media_plugins/cef/CMakeLists.txt @@ -46,9 +46,6 @@ elseif (WINDOWS) list(APPEND media_plugin_cef_SOURCE_FILES windows_volume_catcher.cpp) endif (LINUX) -set_source_files_properties(${media_plugin_cef_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND media_plugin_cef_SOURCE_FILES ${media_plugin_cef_HEADER_FILES}) add_library(media_plugin_cef diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index d0a8fe7571..328d3a0148 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1382,12 +1382,7 @@ if (DARWIN) Japanese.lproj/language.txt Korean.lproj/language.txt ) - set_source_files_properties( - ${viewer_RESOURCE_FILES} - PROPERTIES - HEADER_FILE_ONLY TRUE - #MACOSX_PACKAGE_LOCATION Resources #don't do this! this tells cmake to copy the files. - ) + SOURCE_GROUP("Resources" FILES ${viewer_RESOURCE_FILES}) list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES}) endif (DARWIN) @@ -1652,9 +1647,6 @@ endif() list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES}) -set_source_files_properties(${viewer_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - add_executable(${VIEWER_BINARY_NAME} WIN32 MACOSX_BUNDLE diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index aae299e6ca..2f033616a7 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -53,9 +53,6 @@ if (NOT WINDOWS) ) endif (NOT WINDOWS) -set_source_files_properties(${test_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND test_SOURCE_FILES ${test_HEADER_FILES}) add_executable(lltest ${test_SOURCE_FILES}) diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt index 76e38acf8a..8381803b03 100644 --- a/indra/viewer_components/login/CMakeLists.txt +++ b/indra/viewer_components/login/CMakeLists.txt @@ -17,9 +17,6 @@ set(login_HEADER_FILES lllogin.h ) -set_source_files_properties(${login_HEADER_FILES} - PROPERTIES HEADER_FILE_ONLY TRUE) - list(APPEND login_SOURCE_FILES ${login_HEADER_FILES} -- cgit v1.3 From 15d37713b9113a6f70dde48c764df02c76e18cbc Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Mon, 22 Aug 2022 21:00:42 -0400 Subject: DRTVWR-558: Fix builds on macOS 12.5 Monterey. Always search for python3[.exe] instead of plain 'python'. macOS Monterey no longer bundles Python 2 at all. Explicitly make PYTHON_EXECUTABLE a cached value so if the user edits it in CMakeCache.txt, it won't be overwritten by indra/cmake/Python.cmake. Do NOT set DYLD_LIBRARY_PATH for test executables! That has Bad Effects, as discussed in https://stackoverflow.com/q/73418423/5533635. Instead, create symlinks from build-mumble/sharedlibs/Resources -> Release/Resources and from build-mumble/test/Resources -> ../sharedlibs/Release/Resources. For test executables in sharedlibs/RelWithDebInfo and test/RelWithDebInfo, this supports our dylibs' baked-in load path @executable_path/../Resources. That load path assumes running in a standard app bundle (which the viewer in fact does), but we've been avoiding creating an app bundle for every test program. These symlinks allow us to continue doing that while avoiding DYLD_LIBRARY_PATH. Add indra/llcommon/apply.h. The LL::apply() function and its wrapper macro VAPPLY were very useful in diagnosing the problem. Tweak llleap_test.cpp. This source was modified extensively for diagnostic purposes; these are the small improvements that remain. --- indra/cmake/Copy3rdPartyLibs.cmake | 5 +++ indra/cmake/Python.cmake | 17 ++++----- indra/cmake/run_build_test.py | 2 +- indra/llcommon/apply.h | 68 ++++++++++++++++++++++++++++++++++-- indra/llcommon/tests/llleap_test.cpp | 14 +++----- indra/test/CMakeLists.txt | 11 ++++-- 6 files changed, 95 insertions(+), 22 deletions(-) (limited to 'indra/test') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index ff705101de..c2e1bb4b85 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -151,6 +151,11 @@ 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") + # Support our "@executable_path/../Resources" load path for executables + # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE + # directories. + file(CREATE_LINK "Release/Resources" "${SHARED_LIB_STAGING_DIR}/Resources" + SYMBOLIC) set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(slvoice_files SLVoice) diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index ed595f6966..5be3cbdf11 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -5,8 +5,8 @@ set(PYTHONINTERP_FOUND) if (WINDOWS) # On Windows, explicitly avoid Cygwin Python. - find_program(PYTHON_EXECUTABLE - NAMES python.exe + find_program(python + NAMES python3.exe python.exe NO_DEFAULT_PATH # added so that cmake does not find cygwin python PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\3.7\\InstallPath] @@ -18,19 +18,20 @@ if (WINDOWS) [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\3.8\\InstallPath] [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\3.9\\InstallPath] [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\3.10\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\3.11\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\3.11\\InstallPath] ) include(FindPythonInterp) else() - find_program(PYTHON_EXECUTABLE python3) + find_program(python python3) - if (PYTHON_EXECUTABLE) + if (python) set(PYTHONINTERP_FOUND ON) - endif (PYTHON_EXECUTABLE) + endif (python) endif (WINDOWS) -if (NOT PYTHON_EXECUTABLE) +if (NOT python) message(FATAL_ERROR "No Python interpreter found") -endif (NOT PYTHON_EXECUTABLE) +endif (NOT python) +set(PYTHON_EXECUTABLE "${python}" CACHE FILEPATH "Python interpreter for builds") mark_as_advanced(PYTHON_EXECUTABLE) diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py index 1e92868ae7..1f040bded5 100755 --- a/indra/cmake/run_build_test.py +++ b/indra/cmake/run_build_test.py @@ -73,7 +73,7 @@ def main(command, arguments=[], libpath=[], vars={}): if sys.platform == "win32": lpvars = ["PATH"] elif sys.platform == "darwin": - lpvars = ["LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH"] + lpvars = ["LD_LIBRARY_PATH"] # , "DYLD_LIBRARY_PATH"] elif sys.platform.startswith("linux"): lpvars = ["LD_LIBRARY_PATH"] else: diff --git a/indra/llcommon/apply.h b/indra/llcommon/apply.h index ef4a8fd68b..7c58d63bc0 100644 --- a/indra/llcommon/apply.h +++ b/indra/llcommon/apply.h @@ -12,11 +12,48 @@ #if ! defined(LL_APPLY_H) #define LL_APPLY_H +#include #include namespace LL { +/** + * USAGE NOTE: + * https://stackoverflow.com/a/40523474/5533635 + * + * If you're trying to pass apply() a variadic function, the compiler + * complains that it can't deduce the callable type, presumably because it + * doesn't know which arity to reify to pass. + * + * But it works to wrap the variadic function in a generic lambda, e.g.: + * + * @CODE + * LL::apply( + * [](auto&&... args) + * { + * return variadic(std::forward(args)...); + * }, + * args); + * @ENDCODE + * + * Presumably this is because there's only one instance of the generic lambda + * @em type, with a variadic operator()(). + * + * It's pointless to provide a wrapper @em function that implicitly supplies + * the generic lambda. You couldn't pass your variadic function to our wrapper + * function, for the same original reason! + * + * Instead we provide a wrapper @em macro. Sorry, Dr. Stroustrup. + */ +#define VAPPLY(FUNC, ARGS) \ + LL::apply( \ + [](auto&&... args) \ + { \ + return (FUNC)(std::forward(args)...); \ + }, \ + (ARGS)) + #if __cplusplus >= 201703L // C++17 implementation @@ -34,16 +71,43 @@ auto apply_impl(CALLABLE&& func, TUPLE&& args, std::index_sequence) } template -auto apply(CALLABLE&& func, std::tuple&& args) +auto apply(CALLABLE&& func, const std::tuple& args) { // std::index_sequence_for is the magic sauce here, generating an argument // pack of indexes for each entry in args. apply_impl() can then pass // those to std::get() to unpack args into individual arguments. return apply_impl(std::forward(func), - std::forward>(args), + args, std::index_sequence_for{}); } +// per https://stackoverflow.com/a/57510428/5533635 +template +auto apply(CALLABLE&& func, const std::array& args) +{ + return apply(std::forward(func), std::tuple_cat(args)); +} + +// per https://stackoverflow.com/a/28411055/5533635 +template +auto apply_impl(CALLABLE&& func, const std::vector& args, std::index_sequence) +{ + return apply_impl(std::forward(func), + std::make_tuple(std::forward(args[I])...), + I...); +} + +// this goes beyond C++17 std::apply() +template +auto apply(CALLABLE&& func, const std::vector& args) +{ + constexpr auto arity = boost::function_traits::arity; + assert(args.size() == arity); + return apply_impl(std::forward(func), + args, + std::make_index_sequence()); +} + #endif // C++14 } // namespace LL diff --git a/indra/llcommon/tests/llleap_test.cpp b/indra/llcommon/tests/llleap_test.cpp index 9754353ab0..25db4b6542 100644 --- a/indra/llcommon/tests/llleap_test.cpp +++ b/indra/llcommon/tests/llleap_test.cpp @@ -15,10 +15,11 @@ #include "llleap.h" // STL headers // std headers +#include // external library headers +//#include #include #include -#include // other Linden headers #include "../test/lltut.h" #include "../test/namedtempfile.h" @@ -29,7 +30,6 @@ #include "llstring.h" #include "stringize.h" #include "StringVec.h" -#include using boost::assign::list_of; @@ -110,11 +110,6 @@ namespace tut "import os\n" "import sys\n" "\n" - // Don't forget that this Python script is written to some - // temp directory somewhere! Its __file__ is useless in - // finding indra/lib/python. Use our __FILE__, with - // raw-string syntax to deal with Windows pathnames. - "mydir = os.path.dirname(r'" << __FILE__ << "')\n" "from llbase import llsd\n" "\n" "class ProtocolError(Exception):\n" @@ -241,9 +236,10 @@ namespace tut "import sys\n" "sys.stderr.write('''Hello from Python!\n" "note partial line''')\n"); + StringVec vcommand{ PYTHON, script.getName() }; +// std::string command{ boost::algorithm::join(vcommand, " ") }; CaptureLog log(LLError::LEVEL_INFO); - waitfor(LLLeap::create(get_test_name(), - sv(list_of(PYTHON)(script.getName())))); + waitfor(LLLeap::create(get_test_name(), vcommand)); log.messageWith("Hello from Python!"); log.messageWith("note partial line"); } diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 084aa8d9f7..161e957784 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -116,14 +116,21 @@ if (WINDOWS) LINK_FLAGS "/NODEFAULTLIB:LIBCMT" LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" ) +elseif (DARWIN) + # Support our "@executable_path/../Resources" load path for our test + # executable. This SHOULD properly be "$/Resources", + # but the CMake $ generator expression isn't evaluated by + # CREATE_LINK, so fudge it. + file(CREATE_LINK "../sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/test/Resources" + SYMBOLIC) endif (WINDOWS) set(TEST_EXE $) -SET_TEST_PATH(DYLD_LIBRARY_PATH) +SET_TEST_PATH(LD_LIBRARY_PATH) LL_TEST_COMMAND(command - "${DYLD_LIBRARY_PATH}" + "${LD_LIBRARY_PATH}" "${TEST_EXE}" "--output=${CMAKE_CURRENT_BINARY_DIR}/cpp_test_results.txt" "--touch=${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt") -- cgit v1.3 From 2dc4aec9936186eeaa0867745bb94168f569849b Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Fri, 26 Aug 2022 17:21:01 -0400 Subject: DRTVWR-568: Eliminate more blockers to C++17 language standard. --- indra/llinventory/llparcel.cpp | 2 +- indra/llui/lldockablefloater.h | 3 ++- indra/newview/llappearancemgr.h | 3 ++- indra/newview/llfavoritesbar.cpp | 7 +++++-- indra/newview/llfloater360capture.cpp | 6 ++++-- indra/newview/llfloaterregioninfo.cpp | 12 +++++------- indra/newview/lltoast.h | 3 ++- indra/newview/llwatchdog.cpp | 13 ++++++------- indra/test/lldoubledispatch_tut.cpp | 11 ++++++----- 9 files changed, 33 insertions(+), 27 deletions(-) (limited to 'indra/test') diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index e25dae8a90..8db926fddf 100644 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -1268,5 +1268,5 @@ U32 LLParcel::countExperienceKeyType( U32 type ) return std::count_if( boost::begin(mExperienceKeys | boost::adaptors::map_values), boost::end(mExperienceKeys | boost::adaptors::map_values), - std::bind2nd(std::equal_to(), type)); + [type](U32 key){ return (key == type); }); } diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index 89c9852f4a..5d90b3ef4e 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -30,6 +30,7 @@ #include "llerror.h" #include "llfloater.h" #include "lldockcontrol.h" +#include /** * Represents floater that can dock. @@ -131,7 +132,7 @@ protected: boost::function mIsDockedStateForcedCallback; private: - std::auto_ptr mDockControl; + std::unique_ptr mDockControl; LLUIImagePtr mDockTongue; static LLHandle sInstanceHandle; /** diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 8a55a848db..cf953d21ac 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -35,6 +35,7 @@ #include "llinventoryobserver.h" #include "llviewerinventory.h" #include "llcorehttputil.h" +#include class LLWearableHoldingPattern; class LLInventoryCallback; @@ -276,7 +277,7 @@ private: LLUUID mCOFImageID; - std::auto_ptr mUnlockOutfitTimer; + std::unique_ptr mUnlockOutfitTimer; // Set of temp attachment UUIDs that should be removed typedef std::set doomed_temp_attachments_t; diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index a02bb56489..4f2769a507 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -848,8 +848,11 @@ void LLFavoritesBarCtrl::updateButtons(bool force_update) if (getChildList()->size() > 0) { //find last visible child to get the rightest button offset - child_list_const_reverse_iter_t last_visible_it = std::find_if(childs->rbegin(), childs->rend(), - std::mem_fun(&LLView::getVisible)); + child_list_const_reverse_iter_t last_visible_it = + std::find_if( + childs->rbegin(), childs->rend(), + [](const child_list_t::value_type& child) + { return child->getVisible(); }); if(last_visible_it != childs->rend()) { last_right_edge = (*last_visible_it)->getRect().mRight; diff --git a/indra/newview/llfloater360capture.cpp b/indra/newview/llfloater360capture.cpp index ffbb0bbee9..279a8f68ea 100644 --- a/indra/newview/llfloater360capture.cpp +++ b/indra/newview/llfloater360capture.cpp @@ -889,8 +889,10 @@ const std::string LLFloater360Capture::generate_proposed_filename() // this looks complex but it's straightforward - removes all non-alpha chars from a string // which in this case is the SL region name - we use it as a proposed filename but the user is free to change std::string region_name = region->getName(); - std::replace_if(region_name.begin(), region_name.end(), std::not1(std::ptr_fun(isalnum)), '_'); - if (region_name.length() > 0) + std::replace_if(region_name.begin(), region_name.end(), + [](char c){ return ! std::isalnum(c); }, + '_'); + if (! region_name.empty()) { filename << region_name; filename << "_"; diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 296e155d28..bf38a495bb 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -656,13 +656,11 @@ void LLFloaterRegionInfo::refreshFromRegion(LLViewerRegion* region) } // call refresh from region on all panels - std::for_each( - mInfoPanels.begin(), - mInfoPanels.end(), - llbind2nd( - std::mem_fun(&LLPanelRegionInfo::refreshFromRegion), - region)); - mEnvironmentPanel->refreshFromRegion(region); + for (const auto& infoPanel : mInfoPanels) + { + infoPanel->refreshFromRegion(region); + } + mEnvironmentPanel->refreshFromRegion(region); } // public diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h index 69074b1670..ab559f1e6f 100644 --- a/indra/newview/lltoast.h +++ b/indra/newview/lltoast.h @@ -35,6 +35,7 @@ #include "llviewercontrol.h" #include "lltexteditor.h" +#include #define MOUSE_LEAVE false #define MOUSE_ENTER true @@ -222,7 +223,7 @@ private: LLPanel* mWrapperPanel; // timer counts a lifetime of a toast - std::auto_ptr mTimer; + std::unique_ptr mTimer; F32 mToastLifetime; // in seconds F32 mToastFadingTime; // in seconds diff --git a/indra/newview/llwatchdog.cpp b/indra/newview/llwatchdog.cpp index 0aa0280b25..ceff5cc8ee 100644 --- a/indra/newview/llwatchdog.cpp +++ b/indra/newview/llwatchdog.cpp @@ -222,18 +222,17 @@ void LLWatchdog::run() if(current_run_delta > (WATCHDOG_SLEEP_TIME_USEC * TIME_ELAPSED_MULTIPLIER)) { LL_INFOS() << "Watchdog thread delayed: resetting entries." << LL_ENDL; - std::for_each(mSuspects.begin(), - mSuspects.end(), - std::mem_fun(&LLWatchdogEntry::reset) - ); + for (const auto& suspect : mSuspects) + { + suspect->reset(); + } } else { SuspectsRegistry::iterator result = std::find_if(mSuspects.begin(), - mSuspects.end(), - std::not1(std::mem_fun(&LLWatchdogEntry::isAlive)) - ); + mSuspects.end(), + [](const LLWatchdogEntry* suspect){ return ! suspect->isAlive(); }); if(result != mSuspects.end()) { // error!!! diff --git a/indra/test/lldoubledispatch_tut.cpp b/indra/test/lldoubledispatch_tut.cpp index ad8f6454d4..dbf55e666f 100644 --- a/indra/test/lldoubledispatch_tut.cpp +++ b/indra/test/lldoubledispatch_tut.cpp @@ -35,8 +35,9 @@ #include "lldoubledispatch.h" // STL headers // std headers -#include #include +#include +#include #include // external library headers // other Linden headers @@ -135,10 +136,10 @@ namespace tut // Instantiate a few GameObjects. Make sure we refer to them // polymorphically, and don't let them leak. - std::auto_ptr home; - std::auto_ptr obstacle; - std::auto_ptr tug; - std::auto_ptr patrol; + std::unique_ptr home; + std::unique_ptr obstacle; + std::unique_ptr tug; + std::unique_ptr patrol; // prototype objects Asteroid dummyAsteroid; -- cgit v1.3 From 675cfedb8af74c14ce30759f1d6193f954b88f7b Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 1 Sep 2022 12:27:08 -0400 Subject: DRTVWR-568: Ensure parent directory exists before CREATE_LINK. --- indra/cmake/Copy3rdPartyLibs.cmake | 1 + indra/test/CMakeLists.txt | 2 ++ 2 files changed, 3 insertions(+) (limited to 'indra/test') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index c2e1bb4b85..edf02bec2b 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -154,6 +154,7 @@ elseif(DARWIN) # Support our "@executable_path/../Resources" load path for executables # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE # directories. + file(MAKE_DIRECTORY "${SHARED_LIB_STAGING_DIR}") file(CREATE_LINK "Release/Resources" "${SHARED_LIB_STAGING_DIR}/Resources" SYMBOLIC) diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 161e957784..9e65ceb926 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -121,6 +121,8 @@ elseif (DARWIN) # executable. This SHOULD properly be "$/Resources", # but the CMake $ generator expression isn't evaluated by # CREATE_LINK, so fudge it. + # Make sure the symlink's parent directory exists... + file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/test") file(CREATE_LINK "../sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/test/Resources" SYMBOLIC) endif (WINDOWS) -- cgit v1.3 From e840b5eb40edbac8e72054256112deeaf5c580c2 Mon Sep 17 00:00:00 2001 From: Nicky Dasmijn Date: Sat, 17 Sep 2022 17:37:45 +0200 Subject: MacOs packaging is weird, as Nat already did point out :( Part of his change was omly taking Release builds into account, the other part from me made the same mistake. Use a generator expression with a custom command to get the symlink the way we want. --- indra/cmake/Copy3rdPartyLibs.cmake | 18 +++++++++--------- indra/test/CMakeLists.txt | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) (limited to 'indra/test') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index b265c92e45..5bb988d639 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -152,15 +152,6 @@ if(WINDOWS) endforeach() elseif(DARWIN) - # Support our "@executable_path/../Resources" load path for executables - # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE - # directories. - # Cannot use ${SHARED_LIB_STAGING_DIR} here as it used a generator expression and tha this not - # supported by file(...) - file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/sharedlibs/Release/Resources") - file(CREATE_LINK "${CMAKE_BINARY_DIR}/sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/sharedlibs/Resources" - SYMBOLIC) - set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(slvoice_files SLVoice) set(vivox_libs @@ -299,3 +290,12 @@ add_custom_target( stage_third_party_libs ALL DEPENDS ${third_party_targets} ) + +if(DARWIN) + # Support our "@executable_path/../Resources" load path for executables + # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE + # directories. + add_custom_command( TARGET stage_third_party_libs POST_BUILD + COMMAND cmake -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/sharedlibs/Resources + ) +endif() \ No newline at end of file diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index c913e4031f..48c15155a6 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -74,15 +74,6 @@ if (WINDOWS) LINK_FLAGS "/NODEFAULTLIB:LIBCMT" LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" ) -elseif (DARWIN) - # Support our "@executable_path/../Resources" load path for our test - # executable. This SHOULD properly be "$/Resources", - # but the CMake $ generator expression isn't evaluated by - # CREATE_LINK, so fudge it. - # Make sure the symlink's parent directory exists... - file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/test") - file(CREATE_LINK "../sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/test/Resources" - SYMBOLIC) endif (WINDOWS) set(TEST_EXE $) @@ -111,4 +102,13 @@ set(test_results ${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt) # developers choose to disable LL_TESTS. if (LL_TESTS) add_custom_target(tests_ok ALL DEPENDS ${test_results}) + if(DARWIN) + # Support our "@executable_path/../Resources" load path for our test + # executable. This SHOULD properly be "$/Resources", + # but the CMake $ generator expression isn't evaluated by + # CREATE_LINK, so fudge it. + add_custom_command( TARGET tests_ok PRE_BUILD + COMMAND cmake -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/test/Resource + ) + endif() endif (LL_TESTS) -- cgit v1.3 From c47b2ae7458f88941e4a129b0bc9aa96ab4ae003 Mon Sep 17 00:00:00 2001 From: Nicky Dasmijn Date: Sat, 17 Sep 2022 17:58:08 +0200 Subject: We probably want this (have to guess as I cannot run the tests). --- indra/test/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/test') diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 48c15155a6..b7a39a7450 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -107,8 +107,8 @@ if (LL_TESTS) # executable. This SHOULD properly be "$/Resources", # but the CMake $ generator expression isn't evaluated by # CREATE_LINK, so fudge it. - add_custom_command( TARGET tests_ok PRE_BUILD - COMMAND cmake -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/test/Resource + add_custom_command( TARGET lltest POST_BUILD + COMMAND cmake -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/test/Resources ) endif() endif (LL_TESTS) -- cgit v1.3