Deprecate disallow_assign_by_ref option, default to always
[hiphop-php.git] / hphp / hack / build.ocp
blobb2a486a681624249dd9cfb824027631bc36029a9
1 (**
2  * Copyright (c) 2015, Facebook, Inc.
3  * All rights reserved.
4  *
5  * This source code is licensed under the MIT license found in the
6  * LICENSE file in the "hack" directory of this source tree.
7  *
8  *)
10 begin library "ROOTPROJECT"
11   files = []
12 end
14 ccopt = "-I%{ROOTPROJECT_FULL_SRC_DIR}%/../.."
16 begin library "hh-hhi"
17   requires = [ "hh-globals" "hh-utils" "hh-find" "bigarray" ]
18   files = [
19     "src/hhi/hhi_elf.c"
20     "src/hhi/hhi_win32res_stubs.c"
21     "src/hhi/hhi_win32res.ml"
22     "src/hhi/hhi.ml"
23   ]
24   if (os_type = "Win32") then {
25     (* Embed resources *)
26     hhi_source = "./hhi.rc"
27     hhi_target = "%{hh-hhi_FULL_DST_DIR}%/hhi_res.o"
28     cclib = [ hhi_target ]
29     build_rules = [
30       hhi_target (
31         sources = [ hhi_source ]
32         commands = [
33           { "windres"
34             "--preprocessor=x86_64-w64-mingw32-gcc.exe"
35             "--preprocessor-arg=-E"
36             "--preprocessor-arg=-xc-header"
37             hhi_source hhi_target }
38         ]
39         build_target = true
40       )
41     ]
42   } else if (system = "macosx" && os_type = "Unix") then {
43     cclib = [
44       "-sectcreate" "-__text" "hhi"
45       "%{ROOTPROJECT_FULL_SRC_DIR}%/bin/hhi.tar.gz"
46       "-framework" "CoreServices"
47       "-framework" "CoreFoundation"
48     ]
49   }
51 end
53 begin library "hh-server-base"
54   requires = [ "hh-third-party" "hh-utils" "hh-typing"  "hh-search"
55                 "hh-stubs" "hh-stubs-ai"  "hh-socket" "hh-dfind" "hh-hhi" ]
56   files = [
57     "src/server/serverFiles.ml"
58     "src/server/serverArgs.ml"
59     "src/server/serverConfig.ml"
60     "src/server/serverEnv.ml"
61     "src/server/serverUtils.ml"
62     "src/server/argumentInfoService.ml"
63     "src/server/autocompleteService.ml"
64     "src/server/fileOutline.ml"
65     "src/server/serverIdeUtils.ml"
66     "src/server/findRefsService.ml"
67     "src/server/fullFidelityParseService.ml"
68     "src/server/identifySymbolService.ml"
69     "src/server/inferAtPosService.ml"
70     "src/server/methodJumps.ml"
71     "src/server/serverArgumentInfo.ml"
72     "src/server/serverAutoComplete.ml"
73     "src/server/serverBuild.ml"
74     "src/server/serverCheckpoint.ml"
75     "src/server/serverColorFile.ml"
76     "src/server/serverCoverageMetric.ml"
77     "src/server/serverError.ml"
78     "src/server/serverFindRefs.ml"
79     "src/server/serverIdentifyFunction.ml"
80     "src/server/serverInferType.ml"
81     "src/server/serverLocalConfig.ml"
82     "src/server/serverLint.ml"
83     "src/server/serverProcessTools.ml"
84     "src/server/serverRefactor.ml"
85     "src/server/serverSearch.ml"
86     "src/server/symbolUtils.ml"
87     "src/server/symbolFunCallService.ml"
88     "src/server/symbolTypeService.ml"
89     "src/server/symbolInfoService.ml"
90     "src/server/serverIdle.ml"
91     "src/server/serverRpc.ml"
92     "src/server/serverCheckUtils.ml"
93     "src/server/serverTypeCheck.ml"
94     "src/server/serverCommand.ml"
95     "src/server/serverConvert.ml"
96     "src/server/serverStamp.ml"
97   ]
98 end
100 begin library "hh-server"
101   requires = [
102     "hh-third-party" "hh-utils" "hh-typing"
103     "hh-search"  "hh-stubs"  "hh-stubs-ai"
104     "hh-socket"  "hh-dfind" "hh-watchman" "hh-server-base"
105     "libancillary"
106   ]
107   files = [
108     "src/server/serverEnvBuild.ml"
109     "src/server/serverInit.ml"
110     "src/server/serverMain.ml"
111     "src/server/serverMonitor.ml"
112   ]
115 begin library "hh-client"
116   requires = [
117     "hh-deps"  "hh-heap"  "hh-parsing"
118     "hh-globals"  "hh-search"  "hh-stubs"
119     "hh-socket"  "hh-server-base"
120   ]
121   files = [
122     "src/client/clientConnectSimple.ml"
123     "src/client/clientStop.ml"
124     "src/client/clientStart.ml"
125     "src/client/clientConnect.ml"
126     "src/client/clientLogCommand.ml"
127     "src/client/clientBuild.ml"
128     "src/client/clientEnv.ml"
129     "src/client/clientCommand.ml"
130     "src/client/clientArgs.ml"
131     "src/client/clientArgumentInfo.ml"
132     "src/client/clientAutocomplete.ml"
133     "src/client/clientCheckStatus.ml"
134     "src/client/colorFile.ml"
135     "src/client/clientColorFile.ml"
136     "src/client/clientCoverageMetric.ml"
137     "src/client/clientFindRefs.ml"
138     "src/client/clientLint.ml"
139     "src/client/clientMethodJumps.ml"
140     "src/client/clientOutline.ml"
141     "src/client/clientRefactor.ml"
142     "src/client/clientSearch.ml"
143     "src/client/clientAiInfo.ml"
144     "src/client/clientSymbolInfo.ml"
145     "src/client/clientFullFidelityParse.ml"
146     "src/client/clientTypeAtPos.ml"
147     "src/client/clientCheck.ml"
148     "src/client/clientRestart.ml"
149   ]
152 begin program "hh_client"
153   requires = [ "hh-client" ]
154   files = [ "src/hh_client.ml" ]
157 begin program "hh_server"
158   requires = [ "hh-server" ]
159   files = [ "src/hh_server.ml" ]
162 begin library "hh-emitter"
163   requires = [ "hh-naming" "hh-typing" ]
165   files = [
166     "src/emitter/emitter_core.ml"
167     "src/emitter/emitter_consts.ml"
168     "src/emitter/emitter_xhp.ml"
169     "src/emitter/emitter_expr.ml"
170     "src/emitter/emitter_lit.ml"
171     "src/emitter/emitter_stmt.ml"
172     "src/emitter/emitter_types.ml"
173     "src/emitter/emitter.ml"
174   ]
177 begin program "hh_single_type_check"
178   requires = [ "hh-client"  "hh-emitter" ]
179   files = [
180     "src/hh_single_type_check.ml"
181   ]
184 begin library "hh-match"
185   requires = [ "hh-parsing" "hh-typing-base" ]
186   files = [
187     "src/hh_matcher/astConstructor.ml"
188     "src/hh_matcher/ast_code_extent.ml"
189     "src/hh_matcher/hh_match_utils.ml"
190     "src/hh_matcher/hh_match_test_utils.ml"
191     "src/hh_matcher/patcher.ml"
192     "src/hh_matcher/matcher.ml"
193   ]
196 begin program "hh_match"
197   requires = [ "hh-match" "hh-client" ]
198   files = [ "src/hh_match.ml" ]
201 begin program "code_extent_tests"
202   requires = [ "hh-match" "hh-hhi" ]
203   files = [
204     "src/hh_matcher/test/code_extent_tests.ml"
205   ]
208 begin program "matcher_test"
209   requires = [ "hh-match" "hh-hhi" ]
210   files = [
211     "src/hh_matcher/test/matcher_test.ml"
212   ]
215 begin program "patcher_module_test"
216   requires = [ "hh-match" "hh-hhi" ]
217   files = [
218     "src/hh_matcher/test/patcher_module_test.ml"
219   ]
222 begin program "patcher_api_test"
223   requires = [ "hh-match" "hh-hhi" ]
224   files = [
225     "src/hh_matcher/test/patcher_api_test.ml"
226   ]
229 begin program "patcher_test"
230   requires = [ "hh-match" "hh-hhi" ]
231   files = [
232     "src/hh_matcher/test/patcher_test.ml"
233   ]