-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwatchman.patch
More file actions
186 lines (168 loc) · 6.63 KB
/
watchman.patch
File metadata and controls
186 lines (168 loc) · 6.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4415d95..f1125b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,7 +35,6 @@ option(USE_SYS_PYTHON
ON
)
-enable_testing()
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/external/install/include")
@@ -93,6 +92,12 @@ set(WATCHMAN_VERSION_OVERRIDE "" CACHE STRING "Use this version code for \
set(WATCHMAN_BUILDINFO_OVERRIDE "" CACHE STRING "Use this version code for \
Watchman build info instead of the default (nothing)")
+if (WATCHMAN_BUILDINFO_OVERRIDE)
+ set(BUILD_INFO "${WATCHMAN_BUILDINFO_OVERRIDE}")
+elseif(DEFINED ENV{WATCHMAN_BUILDINFO_OVERRIDE})
+ set(BUILD_INFO "$ENV{WATCHMAN_BUILDINFO_OVERRIDE}")
+endif()
+
if (WATCHMAN_VERSION_OVERRIDE)
set(PACKAGE_VERSION "${WATCHMAN_VERSION_OVERRIDE}")
elseif(DEFINED ENV{WATCHMAN_VERSION_OVERRIDE})
@@ -126,10 +131,12 @@ set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}")
set(PACKAGE_BUGREPORT "https://github.com/facebook/watchman/issues")
project(${PACKAGE_NAME} CXX C)
+if (BUILD_TESTING)
find_package(GMock MODULE REQUIRED)
include_directories(${GMOCK_INCLUDEDIR} ${LIBGMOCK_INCLUDE_DIR})
include(GoogleTest)
enable_testing()
+endif()
include(FBThriftCppLibrary)
include(CheckFunctionExists)
@@ -149,6 +156,9 @@ endfunction()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h.new" "#pragma once\n")
if(NOT WIN32)
+ set(WATCHMAN_CONFIG_FILE "/etc/watchman.json" CACHE STRING
+ "Path of the default configuration file")
+
set(WATCHMAN_STATE_DIR "${CMAKE_INSTALL_PREFIX}/var/run/watchman" CACHE STRING
"Run-time path of the persistent state directory")
set(INSTALL_WATCHMAN_STATE_DIR OFF CACHE BOOL
@@ -157,6 +167,9 @@ if(NOT WIN32)
is owned by a non-privileged user but where the WATCHMAN_STATE_DIR requires
administrative rights to create and set its permissions.")
else()
+ set(WATCHMAN_CONFIG_FILE "C:/ProgramData/facebook/watchman.json" CACHE STRING
+ "Path of the default configuration file")
+
set(WATCHMAN_STATE_DIR)
set(INSTALL_WATCHMAN_STATE_DIR)
endif()
@@ -169,12 +182,7 @@ if(WATCHMAN_STATE_DIR AND INSTALL_WATCHMAN_STATE_DIR)
endif()
config_h("// Generated by cmake")
-if(WIN32)
- config_h("#define WATCHMAN_CONFIG_FILE \
-\"C:/ProgramData/facebook/watchman.json\"")
-else()
- config_h("#define WATCHMAN_CONFIG_FILE \"/etc/watchman.json\"")
-endif()
+config_h("#define WATCHMAN_CONFIG_FILE \"${WATCHMAN_CONFIG_FILE}\"")
if(WATCHMAN_STATE_DIR)
config_h("#define WATCHMAN_STATE_DIR \"${WATCHMAN_STATE_DIR}\"")
@@ -366,6 +374,9 @@ else()
endif()
+option(WITHOUT_PYTHON "Disable python bindings" OFF)
+if (NOT WITHOUT_PYTHON)
+
if(NOT WIN32)
# Sometimes the environment has a Python installation earlier in the
# PATH that is not suitable for building extensions. Prefer the
@@ -420,6 +431,8 @@ if(Python3_Interpreter_FOUND AND NODE AND YARN)
add_subdirectory(watchman/node/bser)
endif()
+endif()
+
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
# Check target architecture
if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
@@ -437,7 +450,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(CMAKE_STATIC_LIBRARY_FLAGS
"${CMAKE_STATIC_LIBRARY_FLAGS} /DEBUG /OPT:NOREF")
else()
- set(CMAKE_CXX_FLAGS_COMMON "-g -Wall -Wextra -std=gnu++17")
+ set(CMAKE_CXX_FLAGS_COMMON "-Wall -Wextra -std=gnu++17")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_COMMON}") # for cmake 3.0
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_COMMON}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_COMMON} -O3")
@@ -519,6 +532,8 @@ watchman/thirdparty/jansson/value.cpp
)
target_link_libraries(jansson string third_party_deps)
+if (BUILD_TESTING)
+
list(APPEND testsupport_sources
watchman/ChildProcess.cpp
watchman/fs/FileDescriptor.cpp
@@ -546,6 +561,8 @@ watchman/root/file.cpp
add_library(testsupport STATIC ${testsupport_sources})
target_link_libraries(testsupport log string jansson third_party_deps)
+endif()
+
if (ENABLE_EDEN_SUPPORT)
add_fbthrift_cpp_library(
eden_config_thrift
@@ -731,6 +748,8 @@ install(TARGETS watchman RUNTIME DESTINATION bin)
add_subdirectory(watchman/cli)
+if (BUILD_TESTING)
+
set(tests)
# Helper function to define a unit test executable
function(t_test NAME)
@@ -784,3 +803,5 @@ t_test(result watchman/test/ResultTest.cpp)
t_test(ringbuffer watchman/test/RingBufferTest.cpp)
t_test(string watchman/test/StringTest.cpp)
t_test(wildmatch watchman/test/WildmatchTest.cpp)
+
+endif()
diff --git a/build/fbcode_builder/CMake/FBCompilerSettingsUnix.cmake b/build/fbcode_builder/CMake/FBCompilerSettingsUnix.cmake
index c26ce78..dacc0b1 100644
--- a/build/fbcode_builder/CMake/FBCompilerSettingsUnix.cmake
+++ b/build/fbcode_builder/CMake/FBCompilerSettingsUnix.cmake
@@ -6,4 +6,4 @@
# to these shared compiler settings in order to avoid accidentally
# breaking a build in another project!
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations")
diff --git a/build/fbcode_builder/CMake/RustStaticLibrary.cmake b/build/fbcode_builder/CMake/RustStaticLibrary.cmake
index d35f208..52df2e3 100644
--- a/build/fbcode_builder/CMake/RustStaticLibrary.cmake
+++ b/build/fbcode_builder/CMake/RustStaticLibrary.cmake
@@ -15,6 +15,7 @@ set(
set_property(CACHE GENERATE_CARGO_VENDOR_CONFIG PROPERTY STRINGS AUTO ON OFF)
set(RUST_VENDORED_CRATES_DIR "$ENV{RUST_VENDORED_CRATES_DIR}")
+set(RUST_CARGO_HOME "$ENV{HOME}/.cargo")
if("${USE_CARGO_VENDOR}" STREQUAL "AUTO")
if(EXISTS "${RUST_VENDORED_CRATES_DIR}")
@@ -130,6 +131,7 @@ function(rust_static_library TARGET)
COMMAND
"${CMAKE_COMMAND}" -E env
"CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}"
+ "RUSTFLAGS=--remap-path-prefix ${RUST_CARGO_HOME}/registry/src/= --remap-path-prefix ${CMAKE_SOURCE_DIR}/watchman/="
${extra_cargo_env}
${cargo_cmd}
${cargo_flags}
@@ -196,6 +198,7 @@ function(rust_executable TARGET)
COMMAND
"${CMAKE_COMMAND}" -E env
"CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}"
+ "RUSTFLAGS=--remap-path-prefix ${RUST_CARGO_HOME}/registry/src/= --remap-path-prefix ${CMAKE_SOURCE_DIR}/watchman/="
${extra_cargo_env}
${cargo_cmd}
${cargo_flags}
diff --git a/watchman/cli/Cargo.toml b/watchman/cli/Cargo.toml
index 158ee2d..4678d8e 100644
--- a/watchman/cli/Cargo.toml
+++ b/watchman/cli/Cargo.toml
@@ -3,6 +3,10 @@ name = "watchmanctl"
version = "0.1.0"
edition = "2021"
+[profile.release.build-override]
+opt-level = 3
+debug = false
+
[dependencies]
anyhow = "1.0"
structopt = "0.3"