# -*- cmake -*- project(llcommon) include(00-Common) include(LLAddBuildTest) include(LLCommon) include(Linking) include(Boost) include (Pth) if (WINDOWS) include(CopyWinLibs) endif (WINDOWS) include_directories( ${EXPAT_INCLUDE_DIRS} ${LLCOMMON_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${PTH_INCLUDE_DIRS} ) # add_executable(lltreeiterators lltreeiterators.cpp) # # target_link_libraries(lltreeiterators # ${LLCOMMON_LIBRARIES}) set(llcommon_SOURCE_FILES llallocator.cpp llallocator_heap_profile.cpp llapp.cpp llapr.cpp llassettype.cpp llbase32.cpp llbase64.cpp llcommon.cpp llcoros.cpp llcrc.cpp llcriticaldamp.cpp llcursortypes.cpp lldate.cpp lldependencies.cpp llerror.cpp llerrorthread.cpp llevent.cpp lleventcoro.cpp lleventdispatcher.cpp lleventfilter.cpp llevents.cpp llfasttimer.cpp llfile.cpp llfindlocale.cpp llfixedbuffer.cpp llformat.cpp llframetimer.cpp llheartbeat.cpp llliveappconfig.cpp lllivefile.cpp lllog.cpp llmd5.cpp llmemory.cpp llmemorystream.cpp llmemtype.cpp llmetrics.cpp llmortician.cpp lloptioninterface.cpp llptrto.cpp llprocesslauncher.cpp llprocessor.cpp llqueuedthread.cpp llrand.cpp llrefcount.cpp llrun.cpp llsd.cpp llsdserialize.cpp llsdserialize_xml.cpp llsdutil.cpp llsecondlifeurls.cpp llsingleton.cpp llstat.cpp llstacktrace.cpp llstreamtools.cpp llstring.cpp llstringtable.cpp llsys.cpp llthread.cpp lltimer.cpp lluri.cpp lluuid.cpp llworkerthread.cpp metaclass.cpp metaproperty.cpp reflective.cpp timing.cpp u64.cpp ) set(llcommon_HEADER_FILES CMakeLists.txt bitpack.h ctype_workaround.h doublelinkedlist.h imageids.h indra_constants.h linden_common.h linked_lists.h llallocator.h llallocator_heap_profile.h llagentconstants.h llapp.h llapr.h llassettype.h llassoclist.h llavatarconstants.h llbase32.h llbase64.h llboost.h llchat.h llclickaction.h llcommon.h llcoros.h llcrc.h llcriticaldamp.h llcursortypes.h lldarray.h lldarrayptr.h lldate.h lldefs.h lldependencies.h lldeleteutils.h lldepthstack.h lldictionary.h lldlinked.h lldoubledispatch.h lldqueueptr.h llendianswizzle.h llenum.h llerror.h llerrorcontrol.h llerrorlegacy.h llerrorthread.h llevent.h lleventcoro.h lleventdispatcher.h lleventfilter.h llevents.h lleventemitter.h llextendedstatus.h llfasttimer.h llfile.h llfindlocale.h llfixedbuffer.h llformat.h llframetimer.h llhash.h llheartbeat.h llhttpstatuscodes.h llindexedqueue.h llinstancetracker.h llinstancetracker.h llkeythrottle.h lllazy.h lllinkedqueue.h llliveappconfig.h lllivefile.h lllocalidhashmap.h lllog.h lllslconstants.h llmap.h llmd5.h llmemory.h llmemorystream.h llmemtype.h llmetrics.h llmortician.h llnametable.h lloptioninterface.h llpointer.h llpreprocessor.h llpriqueuemap.h llprocesslauncher.h llprocessor.h llptrskiplist.h llptrskipmap.h llptrto.h llqueuedthread.h llrand.h llrefcount.h llrun.h llrefcount.h llsafehandle.h llsd.h llsdserialize.h llsdserialize_xml.h llsdutil.h llsecondlifeurls.h llsimplehash.h llsingleton.h llskiplist.h llskipmap.h llstack.h llstacktrace.h llstat.h llstatenums.h llstl.h llstreamtools.h llstrider.h llstring.h llstringtable.h llsys.h llthread.h lltimer.h lltreeiterators.h lluri.h lluuid.h lluuidhashmap.h llversionserver.h llversionviewer.h llworkerthread.h metaclass.h metaclasst.h metaproperty.h metapropertyt.h processor.h reflective.h reflectivet.h roles_constants.h stdenums.h stdtypes.h string_table.h stringize.h timer.h timing.h u64.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) add_library (llcommon SHARED ${llcommon_SOURCE_FILES}) add_definitions(-DLL_COMMON_BUILD=1) if(SHARED_LIB_STAGING_DIR) # *FIX:Mani --- # llcommon.dll get written to the DLL staging directory. # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests. set_target_properties(llcommon PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR}) if(NOT WINDOWS) get_target_property(LLCOMMON_PATH llcommon LOCATION) get_filename_component(LLCOMMON_FILE ${LLCOMMON_PATH} NAME) add_custom_command( TARGET llcommon POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${LLCOMMON_PATH} ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/${LLCOMMON_FILE} COMMENT "Copying llcommon to the staging folder." ) endif(NOT WINDOWS) endif(SHARED_LIB_STAGING_DIR) if (DARWIN) set_target_properties(llcommon PROPERTIES BUILD_WITH_INSTALL_RPATH 1 INSTALL_NAME_DIR "@executable_path/../Resources" ) endif(DARWIN) else(LLCOMMON_LINK_SHARED) add_library (llcommon ${llcommon_SOURCE_FILES}) endif(LLCOMMON_LINK_SHARED) target_link_libraries( llcommon ${APRUTIL_LIBRARIES} ${APR_LIBRARIES} ${EXPAT_LIBRARIES} ${ZLIB_LIBRARIES} ${WINDOWS_LIBRARIES} ${BOOST_PROGRAM_OPTIONS_LIBRARY} ${BOOST_REGEX_LIBRARY} ${PTH_LIBRARIES} ) add_dependencies(llcommon stage_third_party_libs) include(LLAddBuildTest) SET(llcommon_TEST_SOURCE_FILES ) LL_ADD_PROJECT_UNIT_TESTS(llcommon "${llcommon_TEST_SOURCE_FILES}") #set(TEST_DEBUG on) set(test_libs llcommon ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) # Have to treat lllazy test as an integration test until this issue is resolved: # https://jira.lindenlab.com/jira/browse/DEV-29456 LL_ADD_INTEGRATION_TEST(lllazy lllazy.cpp "${test_libs}") # *TODO - reenable these once tcmalloc libs no longer break the build. #ADD_BUILD_TEST(llallocator llcommon) #ADD_BUILD_TEST(llallocator_heap_profile llcommon) #ADD_BUILD_TEST(llmemtype llcommon)