Date: Sat, 5 Jan 2019 01:14:07 +0000 (UTC) From: Steve Wills <swills@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r489287 - in head/devel: . bloaty bloaty/files Message-ID: <201901050114.x051E7hI084987@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: swills Date: Sat Jan 5 01:14:07 2019 New Revision: 489287 URL: https://svnweb.freebsd.org/changeset/ports/489287 Log: devel/bloaty: create port Ever wondered what's making your binary big? Bloaty McBloatface will show you a size profile of the binary so you can understand what's taking up space inside. WWW: https://github.com/google/bloaty Added: head/devel/bloaty/ head/devel/bloaty/Makefile (contents, props changed) head/devel/bloaty/distinfo (contents, props changed) head/devel/bloaty/files/ head/devel/bloaty/files/patch-CMakeLists.txt (contents, props changed) head/devel/bloaty/pkg-descr (contents, props changed) Modified: head/devel/Makefile (contents, props changed) Modified: head/devel/Makefile ============================================================================== --- head/devel/Makefile Sat Jan 5 01:13:55 2019 (r489286) +++ head/devel/Makefile Sat Jan 5 01:14:07 2019 (r489287) @@ -214,6 +214,7 @@ SUBDIR += binutils SUBDIR += bison SUBDIR += blame + SUBDIR += bloaty SUBDIR += blitz SUBDIR += bmake SUBDIR += bmkdep Added: head/devel/bloaty/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/bloaty/Makefile Sat Jan 5 01:14:07 2019 (r489287) @@ -0,0 +1,32 @@ +# $FreeBSD$ + +PORTNAME= bloaty +PORTVERSION= 1.0 +DISTVERSIONPREFIX= v +CATEGORIES= devel + +MAINTAINER= swills@FreeBSD.org +COMMENT= Size profiler for binaries + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= go:lang/go \ + cmake:devel/cmake \ + ninja:devel/ninja +LIB_DEPENDS= libre2.so:devel/re2 \ + libcapstone.so:devel/capstone4 \ + libprotobuf.so:devel/protobuf + +USES= cmake pkgconfig + +USE_GITHUB= yes +GH_ACCOUNT= google +GH_TUPLE= google:${PORTNAME}:${DISTVERSIONPREFIX}${PORTVERSION}:DEFAULT \ + abseil:abseil-cpp:bea85b5:abseil/third_party/abseil-cpp \ + nico:demumble:01098ea:demumble/third_party/demumble +CMAKE_OFF= BLOATY_ENABLE_CMAKETARGETS BLOATY_ENABLE_BUILDID + +PLIST_FILES= bin/bloaty + +.include <bsd.port.mk> Added: head/devel/bloaty/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/bloaty/distinfo Sat Jan 5 01:14:07 2019 (r489287) @@ -0,0 +1,7 @@ +TIMESTAMP = 1546554039 +SHA256 (google-bloaty-v1.0_GH0.tar.gz) = 1aaa1363d8267202794f2e7d923a6a894e73bd2b0fc3b9e7c8f6c433dcf7ba0d +SIZE (google-bloaty-v1.0_GH0.tar.gz) = 3382258 +SHA256 (abseil-abseil-cpp-bea85b5_GH0.tar.gz) = 22e6d91961b2c4568b345fbbcd8a8f350265b8aa60449f9f4e3681e377ce43c3 +SIZE (abseil-abseil-cpp-bea85b5_GH0.tar.gz) = 1025885 +SHA256 (nico-demumble-01098ea_GH0.tar.gz) = 8483238a47a68ba5feb0a28e60598e77751857732f1928c3768e08f77ca673b0 +SIZE (nico-demumble-01098ea_GH0.tar.gz) = 49945 Added: head/devel/bloaty/files/patch-CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/bloaty/files/patch-CMakeLists.txt Sat Jan 5 01:14:07 2019 (r489287) @@ -0,0 +1,201 @@ +--- CMakeLists.txt.orig 2018-08-07 21:23:18 UTC ++++ CMakeLists.txt +@@ -5,7 +5,35 @@ project (Bloaty VERSION 1.0) + # Options we define for users. + option(BLOATY_ENABLE_ASAN "Enable address sanitizer." OFF) + option(BLOATY_ENABLE_UBSAN "Enable undefined behavior sanitizer." OFF) ++option(BLOATY_ENABLE_CMAKETARGETS "Enable installing cmake target files." ON) ++option(BLOATY_ENABLE_BUILDID "Enable build id." ON) + ++if(UNIX) ++find_package(PkgConfig) ++if(${PKG_CONFIG_FOUND}) ++pkg_search_module(RE2 re2) ++pkg_search_module(CAPSTONE capstone) ++pkg_search_module(PROTOBUF protobuf) ++if(${RE2_FOUND}) ++ MESSAGE(STATUS "System re2 found, using") ++else(${RE2_FOUND}) ++ MESSAGE(STATUS "System re2 not found, using bundled version") ++endif(${RE2_FOUND}) ++if(${CAPSTONE_FOUND}) ++ MESSAGE(STATUS "System capstone found, using") ++else(${CAPSTONE_FOUND}) ++ MESSAGE(STATUS "System capstone not found, using bundled version") ++endif(${CAPSTONE_FOUND}) ++if(${PROTOBUF_FOUND}) ++ MESSAGE(STATUS "System protobuf found, using") ++else(${PROTOBUF_FOUND}) ++ MESSAGE(STATUS "System protobuf not found, using bundled version") ++endif(${PROTOBUF_FOUND}) ++else(${PKG_CONFIG_FOUND}) ++ MESSAGE(STATUS "pkg-config not found, using bundled dependencies") ++endif(${PKG_CONFIG_FOUND}) ++endif(UNIX) ++ + # Set default build type. + if(NOT CMAKE_BUILD_TYPE) + message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.") +@@ -21,19 +49,42 @@ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules") + endif() + + # Add third_party libraries, disabling as much as we can of their builds. +-set(RE2_BUILD_TESTING OFF CACHE BOOL "enable testing for RE2" FORCE) +-set(CAPSTONE_BUILD_SHARED OFF CACHE BOOL "Build shared library" FORCE) +-set(CAPSTONE_BUILD_TESTS OFF CACHE BOOL "Build tests" FORCE) +-set(protobuf_BUILD_TESTS OFF CACHE BOOL "enable tests for proto2" FORCE) +-set(protobuf_BUILD_SHARED_LIBS OFF CACHE BOOL "enable shared libs for proto2" FORCE) ++ + add_definitions(-D_LIBCXXABI_FUNC_VIS=) # For Demumble. +-add_subdirectory(third_party/re2) +-add_subdirectory(third_party/capstone) +-add_subdirectory(third_party/protobuf/cmake) + +-include_directories(third_party/capstone/include) +-include_directories(third_party/re2) +-include_directories(third_party/protobuf/src) ++if(UNIX) ++ if(${RE2_FOUND}) ++ include_directories(${RE2_INCLUDE_DIRS}) ++ else(${RE2_FOUND}) ++ set(RE2_BUILD_TESTING OFF CACHE BOOL "enable testing for RE2" FORCE) ++ add_subdirectory(third_party/re2) ++ include_directories(third_party/re2) ++ endif(${RE2_FOUND}) ++ if(${CAPSTONE_FOUND}) ++ include_directories(${CAPSTONE_INCLUDE_DIRS}) ++ else(${CAPSTONE_FOUND}) ++ set(CAPSTONE_BUILD_SHARED OFF CACHE BOOL "Build shared library" FORCE) ++ set(CAPSTONE_BUILD_TESTS OFF CACHE BOOL "Build tests" FORCE) ++ add_subdirectory(third_party/capstone) ++ include_directories(third_party/capstone/include) ++ endif(${CAPSTONE_FOUND}) ++ if(${PROTOBUF_FOUND}) ++ include_directories(${PROTOBUF_INCLUDE_DIRS}) ++ else(${PROTOBUF_FOUND}) ++ set(protobuf_BUILD_TESTS OFF CACHE BOOL "enable tests for proto2" FORCE) ++ set(protobuf_BUILD_SHARED_LIBS OFF CACHE BOOL "enable shared libs for proto2" FORCE) ++ add_subdirectory(third_party/protobuf/cmake) ++ include_directories(third_party/protobuf/src) ++ endif(${PROTOBUF_FOUND}) ++else(UNIX) ++ add_subdirectory(third_party/re2) ++ add_subdirectory(third_party/capstone) ++ add_subdirectory(third_party/protobuf/cmake) ++ include_directories(third_party/re2) ++ include_directories(third_party/capstone/include) ++ include_directories(third_party/protobuf/src) ++endif(UNIX) ++ + include_directories(.) + include_directories(src) + include_directories(third_party/abseil-cpp) +@@ -47,7 +98,9 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g1") + + if(APPLE) + elseif(UNIX) +- set(CMAKE_EXE_LINKER_FLAGS "-Wl,--build-id") ++ if(BLOATY_ENABLE_BUILDID) ++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--build-id") ++ endif(BLOATY_ENABLE_BUILDID) + endif() + + # When using Ninja, compiler output won't be colorized without this. +@@ -73,6 +126,7 @@ if(DEFINED ENV{CXXFLAGS}) + endif() + + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src) ++if(${PROTOC_FOUND}) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/bloaty.pb.cc + DEPENDS protoc ${CMAKE_CURRENT_SOURCE_DIR}/src/bloaty.proto +@@ -80,6 +134,14 @@ add_custom_command( + --cpp_out=${CMAKE_CURRENT_BINARY_DIR}/src + -I${CMAKE_CURRENT_SOURCE_DIR}/src + ) ++else(${PROTOC_FOUND}) ++add_custom_command( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/bloaty.pb.cc ++ COMMAND protoc ${CMAKE_CURRENT_SOURCE_DIR}/src/bloaty.proto ++ --cpp_out=${CMAKE_CURRENT_BINARY_DIR}/src ++ -I${CMAKE_CURRENT_SOURCE_DIR}/src ++) ++endif(${PROTOC_FOUND}) + + add_library(libbloaty + src/bloaty.cc +@@ -112,10 +174,39 @@ add_library(libbloaty + third_party/demumble/third_party/libcxxabi/cxa_demangle.cpp + ) + ++if(UNIX) ++ set(LIBBLOATY_LIBS libbloaty) ++ if(${PROTOBUF_FOUND}) ++ set(LIBBLOATY_LIBS ${LIBBLOATY_LIBS} ${PROTOBUF_LIBRARIES}) ++ else(${PROTOBUF_FOUND}) ++ set(LIBBLOATY_LIBS ${LIBBLOATY_LIBS} libprotoc) ++ endif(${PROTOBUF_FOUND}) ++ if(${RE2_FOUND}) ++ set(LIBBLOATY_LIBS ${LIBBLOATY_LIBS} ${RE2_LIBRARIES}) ++ else(${RE2_FOUND}) ++ set(LIBBLOATY_LIBS ${LIBBLOATY_LIBS} re2) ++ endif(${RE2_FOUND}) ++ if(${CAPSTONE_FOUND}) ++ set(LIBBLOATY_LIBS ${LIBBLOATY_LIBS} ${CAPSTONE_LIBRARIES}) ++ else(${CAPSTONE_FOUND}) ++ set(LIBBLOATY_LIBS ${LIBBLOATY_LIBS} capstone-static) ++ endif(${CAPSTONE_FOUND}) ++else(UNIX) ++ set(LIBBLOATY_LIBS libbloaty libprotoc re2 capstone-static) ++endif(UNIX) + +-set(LIBBLOATY_LIBS libbloaty libprotoc re2 capstone-static) ++if(UNIX) ++ if(${RE2_FOUND}) ++ link_directories(${RE2_LIBRARY_DIRS}) ++ endif(${RE2_FOUND}) ++ if(${CAPSTONE_FOUND}) ++ link_directories(${CAPSTONE_LIBRARY_DIRS}) ++ endif(${CAPSTONE_FOUND}) ++ if(${PROTOBUF_FOUND}) ++ link_directories(${PROTOBUF_LIBRARY_DIRS}) ++ endif(${PROTOBUF_FOUND}) ++endif(UNIX) + +- + if(DEFINED ENV{LIB_FUZZING_ENGINE}) + message("LIB_FUZZING_ENGINE set, building fuzz_target instead of Bloaty") + add_executable(fuzz_target tests/fuzz_target.cc) +@@ -134,11 +225,18 @@ else() + target_link_libraries(bloaty "${CMAKE_THREAD_LIBS_INIT}") + endif() + +- install( +- TARGETS bloaty +- EXPORT ${PROJECT_NAME}Targets +- RUNTIME DESTINATION bin +- ) ++ if(BLOATY_ENABLE_CMAKETARGETS) ++ install( ++ TARGETS bloaty ++ EXPORT ${PROJECT_NAME}Targets ++ RUNTIME DESTINATION bin ++ ) ++ else(BLOATY_ENABLE_CMAKETARGETS) ++ install( ++ TARGETS bloaty ++ RUNTIME DESTINATION bin ++ ) ++ endif(BLOATY_ENABLE_CMAKETARGETS) + + if (IS_DIRECTORY "${PROJECT_SOURCE_DIR}/tests") + enable_testing() +@@ -172,5 +270,7 @@ else() + endif() + endif() + +- install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME}) ++ if(BLOATY_ENABLE_CMAKETARGETS) ++ install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME}) ++ endif(BLOATY_ENABLE_CMAKETARGETS) + endif() Added: head/devel/bloaty/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/bloaty/pkg-descr Sat Jan 5 01:14:07 2019 (r489287) @@ -0,0 +1,4 @@ +Ever wondered what's making your binary big? Bloaty McBloatface will show you a +size profile of the binary so you can understand what's taking up space inside. + +WWW: https://github.com/google/bloaty
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901050114.x051E7hI084987>