blob: 6b2c85b9762b73ec52714a1b9875be639e44de1e [file] [log] [blame]
Adnan Begovic744a2572015-05-26 18:19:59 -07001# Copyright (C) 2015 The CyanogenMod Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15#
16# Rules for running apicheck to confirm that you haven't broken
17# api compatibility or added apis illegally.
18#
19
20# skip api check for PDK buid
Sam Mortimer19ce2d32017-09-18 21:05:19 -070021ifeq (,$(filter true, $(WITHOUT_CHECK_API) $(TARGET_BUILD_PDK) $(TARGET_DISABLE_LINEAGE_SDK)))
Adnan Begovic744a2572015-05-26 18:19:59 -070022
Sam Mortimer19ce2d32017-09-18 21:05:19 -070023.PHONY: checkapi-lineage
Adnan Begovic744a2572015-05-26 18:19:59 -070024
25# Run the checkapi rules by default.
Sam Mortimer19ce2d32017-09-18 21:05:19 -070026droidcore: checkapi-lineage
Adnan Begovic744a2572015-05-26 18:19:59 -070027
Adnan Begovicde0b2d32016-04-01 16:23:12 -070028# Validate against previous release platform sdk version api text within prebuilts
Sam Mortimer19ce2d32017-09-18 21:05:19 -070029lineage_last_released_sdk_version := $(LINEAGE_PLATFORM_SDK_VERSION)
Adnan Begovic744a2572015-05-26 18:19:59 -070030
Sam Mortimer19ce2d32017-09-18 21:05:19 -070031.PHONY: check-lineage-public-api
32checkapi-lineage : check-lineage-public-api
Adnan Begovic744a2572015-05-26 18:19:59 -070033
Sam Mortimer19ce2d32017-09-18 21:05:19 -070034.PHONY: update-lineage-api
Adnan Begovic744a2572015-05-26 18:19:59 -070035
Sam Mortimer19ce2d32017-09-18 21:05:19 -070036# INTERNAL_LINEAGE_PLATFORM_API_FILE is the one build by droiddoc.
37# Note that since INTERNAL_LINEAGE_PLATFORM_API_FILE is the byproduct of api-stubs module,
38# (See lineage-sdk/Android.mk)
Adnan Begovic744a2572015-05-26 18:19:59 -070039# we need to add api-stubs as additional dependency of the api check.
40
Sam Mortimer19ce2d32017-09-18 21:05:19 -070041$(INTERNAL_LINEAGE_PLATFORM_API_FILE): lineage-api-stubs-docs
Adnan Begovic97ac30e2016-02-10 14:43:35 -080042
Adnan Begovic744a2572015-05-26 18:19:59 -070043# Check that the API we're building hasn't broken the last-released
44# SDK version.
45$(eval $(call check-api, \
Sam Mortimer19ce2d32017-09-18 21:05:19 -070046 checkpublicapi-lineage-last, \
47 $(LINEAGE_SRC_API_DIR)/$(lineage_last_released_sdk_version).txt, \
48 $(INTERNAL_LINEAGE_PLATFORM_API_FILE), \
49 $(FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE), \
50 $(INTERNAL_LINEAGE_PLATFORM_REMOVED_API_FILE), \
Adnan Begovice7380872016-02-09 11:04:37 -080051 -hide 2 -hide 3 -hide 4 -hide 5 -hide 6 -hide 24 -hide 25 -hide 26 -hide 27 \
52 -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
53 -error 16 -error 17 -error 18 , \
Sam Mortimer19ce2d32017-09-18 21:05:19 -070054 cat $(FRAMEWORK_LINEAGE_API_NEEDS_UPDATE_TEXT), \
55 check-lineage-public-api, \
56 $(call doc-timestamp-for,lineage-api-stubs) \
Adnan Begovic744a2572015-05-26 18:19:59 -070057 ))
58
Adnan Begovic744a2572015-05-26 18:19:59 -070059# Check that the API we're building hasn't changed from the not-yet-released
60# SDK version.
61$(eval $(call check-api, \
Sam Mortimer19ce2d32017-09-18 21:05:19 -070062 checkpublicapi-lineage-current, \
63 $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE), \
64 $(INTERNAL_LINEAGE_PLATFORM_API_FILE), \
65 $(FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE), \
66 $(INTERNAL_LINEAGE_PLATFORM_REMOVED_API_FILE), \
Adnan Begovice7380872016-02-09 11:04:37 -080067 -error 2 -error 3 -error 4 -error 5 -error 6 \
68 -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
69 -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
70 -error 25 -error 26 -error 27, \
Sam Mortimer19ce2d32017-09-18 21:05:19 -070071 cat $(FRAMEWORK_LINEAGE_API_NEEDS_UPDATE_TEXT), \
72 check-lineage-public-api, \
73 $(call doc-timestamp-for,lineage-api-stubs) \
Adnan Begovic744a2572015-05-26 18:19:59 -070074 ))
75
Sam Mortimer19ce2d32017-09-18 21:05:19 -070076.PHONY: update-lineage-public-api
77update-lineage-public-api: $(INTERNAL_LINEAGE_PLATFORM_API_FILE) | $(ACP)
78 @echo "Copying lineage_current.txt"
79 $(hide) $(ACP) $(INTERNAL_LINEAGE_PLATFORM_API_FILE) $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE)
80 @echo "Copying lineage_removed.txt"
81 $(hide) $(ACP) $(INTERNAL_LINEAGE_PLATFORM_REMOVED_API_FILE) $(FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE)
Adnan Begovic744a2572015-05-26 18:19:59 -070082
Sam Mortimer19ce2d32017-09-18 21:05:19 -070083update-lineage-api : update-lineage-public-api
Adnan Begovic744a2572015-05-26 18:19:59 -070084
Sam Mortimer19ce2d32017-09-18 21:05:19 -070085.PHONY: update-lineage-prebuilts-latest-public-api
86current_sdk_release_text_file := $(LINEAGE_SRC_API_DIR)/$(lineage_last_released_sdk_version).txt
Adnan Begovic4397d1d2015-07-16 17:11:06 -070087
Sam Mortimer19ce2d32017-09-18 21:05:19 -070088update-lineage-prebuilts-latest-public-api: $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE) | $(ACP)
89 @echo "Publishing lineage_current.txt as latest API release"
90 $(hide) $(ACP) $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE) $(current_sdk_release_text_file)
Adnan Begovic4397d1d2015-07-16 17:11:06 -070091
Adnan Begovic744a2572015-05-26 18:19:59 -070092endif