Skip to content

Commit ff970d0

Browse files
authored
Install files into /usr/libexec/bear instead of /usr/libexec (#348)
* Install files into /usr/libexec/bear instead of directly into /usr/libexec As the installed files have rather generic names (e.g., libexec.so), put them into a sub-directory so it is clear that those files belong to bear. * Use PRIVATE_INSTALLDIR for private binaries This defaults to `${LIBEXECDIR}/bear`, i.e., `/usr/libexec/bear`. Use the directory for all binaries that should not be in PATH or in the default link directory.
1 parent 7917248 commit ff970d0

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ if (NOT CMAKE_INSTALL_LIBEXECDIR)
3333
include(GNUInstallDirs)
3434
endif ()
3535

36+
set(PRIVATE_INSTALLDIR "${CMAKE_INSTALL_LIBEXECDIR}/bear" CACHE PATH "Install directory for private binaries")
37+
3638
# Verify or install dependencies
3739
add_subdirectory(third_party)
3840

@@ -58,6 +60,7 @@ ExternalProject_Add(BearSource
5860
-DCMAKE_INSTALL_PREFIX:PATH=${STAGED_INSTALL_PREFIX}
5961
-DCMAKE_INSTALL_LIBEXECDIR:PATH=${CMAKE_INSTALL_LIBEXECDIR}
6062
-DROOT_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
63+
-DPRIVATE_INSTALLDIR:PATH=${PRIVATE_INSTALLDIR}
6164
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
6265
-DENABLE_UNIT_TESTS:BOOL=${ENABLE_UNIT_TESTS}
6366
-DENABLE_FUNC_TESTS:BOOL=${ENABLE_FUNC_TESTS}
@@ -77,6 +80,7 @@ if (ENABLE_FUNC_TESTS)
7780
CMAKE_CACHE_ARGS
7881
-DSTAGED_INSTALL_PREFIX:PATH=${STAGED_INSTALL_PREFIX}
7982
-DBEARSOURCE_BUILD_DIR:PATH=${CMAKE_BINARY_DIR}/subprojects/Build/BearSource
83+
-DPRIVATE_INSTALLDIR:PATH=${PRIVATE_INSTALLDIR}
8084
TEST_BEFORE_INSTALL
8185
1
8286
INSTALL_COMMAND

source/config.h.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ namespace cmd {
107107
}
108108

109109
namespace wrapper {
110-
constexpr char DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/wrapper";
111-
constexpr char DEFAULT_DIR_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/wrapper.d";
110+
constexpr char DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@PRIVATE_INSTALLDIR@/wrapper";
111+
constexpr char DEFAULT_DIR_PATH[] = "@ROOT_INSTALL_PREFIX@/@PRIVATE_INSTALLDIR@/wrapper.d";
112112

113113
constexpr char FLAG_VERBOSE[] = "--verbose";
114114
constexpr char FLAG_DESTINATION[] = "--destination";
@@ -120,7 +120,7 @@ namespace cmd {
120120
}
121121

122122
namespace library {
123-
constexpr char DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
123+
constexpr char DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@PRIVATE_INSTALLDIR@/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
124124

125125
constexpr char KEY_REPORTER[] = "INTERCEPT_REPORT_COMMAND";
126126
constexpr char KEY_DESTINATION[] = "INTERCEPT_REPORT_DESTINATION";

source/intercept/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ target_link_libraries(wrapper
106106
wrapper_a)
107107

108108
install(TARGETS wrapper
109-
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
109+
RUNTIME DESTINATION ${PRIVATE_INSTALLDIR})
110110
install(DIRECTORY
111-
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/wrapper.d)
111+
DESTINATION ${PRIVATE_INSTALLDIR}/wrapper.d)
112112
install(CODE "
113113
execute_process(
114114
COMMAND ln -sf ../wrapper ar
@@ -142,7 +142,7 @@ install(CODE "
142142
COMMAND ln -sf ../wrapper objdump
143143
COMMAND ln -sf ../wrapper ranlib
144144
COMMAND ln -sf ../wrapper readelf
145-
WORKING_DIRECTORY ${DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/wrapper.d
145+
WORKING_DIRECTORY ${DESTDIR}${CMAKE_INSTALL_PREFIX}/${PRIVATE_INSTALLDIR}/wrapper.d
146146
)
147147
")
148148

@@ -187,7 +187,7 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
187187
endif ()
188188

189189
install(TARGETS exec
190-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
190+
LIBRARY DESTINATION ${PRIVATE_INSTALLDIR})
191191

192192

193193
# Create unit test.

test/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ if (LIT_EXECUTABLE)
5353
-D_BIN_BEAR=${STAGED_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/bear
5454
-D_BIN_CITNAMES=${STAGED_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/citnames
5555
-D_BIN_INTERCEPT=${STAGED_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/intercept
56-
-D_BIN_ER=${STAGED_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/wrapper
57-
-D_BIN_WRAPPER=${STAGED_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/wrapper.d
58-
-D_LIB_EXEC=${STAGED_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}exec${CMAKE_SHARED_LIBRARY_SUFFIX}
56+
-D_BIN_ER=${STAGED_INSTALL_PREFIX}/${PRIVATE_INSTALLDIR}/wrapper
57+
-D_BIN_WRAPPER=${STAGED_INSTALL_PREFIX}/${PRIVATE_INSTALLDIR}/wrapper.d
58+
-D_LIB_EXEC=${STAGED_INSTALL_PREFIX}/${PRIVATE_INSTALLDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}exec${CMAKE_SHARED_LIBRARY_SUFFIX}
5959
-D_BIN_EVENTS_DB=${BEARSOURCE_BUILD_DIR}/intercept/events_db
6060
-v
6161
${CMAKE_CURRENT_BINARY_DIR})

0 commit comments

Comments
 (0)