Search
SailfishOS Open Build Service
>
Projects
>
nemo
:
testing:hw
:
volla
:
yggdrasil
>
linux-hidl
> _service:tar_git:0015-hidl-cmakelist.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File _service:tar_git:0015-hidl-cmakelist.patch of Package linux-hidl
diff --git a/src/hidl/CMakeLists.txt b/src/hidl/CMakeLists.txt new file mode 100644 index 00000000..73d7f341 --- /dev/null +++ b/src/hidl/CMakeLists.txt @@ -0,0 +1,172 @@ +add_subdirectory(hashing) +add_subdirectory(host_utils) +add_subdirectory(utils) + +add_library(libhidl-gen SHARED + Annotation.cpp + ArrayType.cpp + CompoundType.cpp + ConstantExpression.cpp + DeathRecipientType.cpp + DocComment.cpp + EnumType.cpp + HandleType.cpp + HidlTypeAssertion.cpp + Interface.cpp + Location.cpp + MemoryType.cpp + Method.cpp + NamedType.cpp + PointerType.cpp + FmqType.cpp + RefType.cpp + ScalarType.cpp + Scope.cpp + StringType.cpp + Type.cpp + TypeDef.cpp + VectorType.cpp +) +target_link_libraries(libhidl-gen libbase libhidl-gen-hash libhidl-gen-utils libhidl-gen-host-utils) + +set_target_properties(libhidl-gen PROPERTIES + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} +) + +install(TARGETS libhidl-gen + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER) + + +BISON_TARGET(hidl-gen-y hidl-gen_y.yy ${CMAKE_CURRENT_BINARY_DIR}/hidl-gen_y.cpp) +FLEX_TARGET(hidl-gen-l hidl-gen_l.ll ${CMAKE_CURRENT_BINARY_DIR}/hidl-gen_l.cpp) +ADD_FLEX_BISON_DEPENDENCY(hidl-gen-l hidl-gen-y) + +add_library(libhidl-gen-ast SHARED + Coordinator.cpp + generateCpp.cpp + generateCppAdapter.cpp + generateCppImpl.cpp + generateDependencies.cpp + generateJava.cpp + generateVts.cpp + hidl-gen_l.h + ${BISON_hidl-gen-y_OUTPUTS} + ${FLEX_hidl-gen-l_OUTPUTS} + AST.cpp +) +target_link_libraries(libhidl-gen-ast libbase libhidl-gen libhidl-gen-hash libhidl-gen-utils libhidl-gen-host-utils) +target_include_directories(libhidl-gen-ast PRIVATE .) + +set_target_properties(libhidl-gen-ast PROPERTIES + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} +) + +install(TARGETS libhidl-gen-ast + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER) + + +add_executable(hidl-gen main.cpp) +target_link_libraries(hidl-gen libbase libhidl-gen libhidl-gen-ast libhidl-gen-hash libhidl-gen-utils libhidl-gen-host-utils) + +install(TARGETS hidl-gen + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + PUBLIC_HEADER) + + +# MAN! this is messy, here be many fucking dragons... +function(add_hidl) + set(_one_value NAME ROOT) + set(_multi_value DEPENDS INTERFACES SRCS LINK HEADERS) + cmake_parse_arguments (arg "" "${_one_value}" "${_multi_value}" ${ARGN}) + + string(REPLACE @ _ _name ${arg_NAME}) + + if(arg_INTERFACES) + foreach(f ${arg_INTERFACES}) + set(INTERFACES ${INTERFACES} -r ${${f}_ROOTPATH} ${f}) + endforeach(f) + endif() + + set(_OUTDIR ${CMAKE_BINARY_DIR}/hidl-generated/${_name}) + string(REPLACE "@" ";" _name_list ${arg_NAME}) + list(GET _name_list 0 _name_list_path) + list(GET _name_list 1 _name_list_version) + string(REPLACE . / _SRC_PATH ${_name_list_path}) + set(_OUTDIR_FILES ${_OUTDIR}/${_SRC_PATH}/${_name_list_version}) + + # Expected files + foreach(f ${arg_SRCS}) + string(REPLACE ".hal" "" _src1 ${f}) + if(${_src1} MATCHES ^I) + string(REPLACE "I" "" _src2 ${_src1}) + set(_SRCS ${_SRCS} ${_OUTDIR_FILES}/${_src2}All.cpp ${_OUTDIR_FILES}/Bs${_src2}.h ${_OUTDIR_FILES}/BnHw${_src2}.h ${_OUTDIR_FILES}/BpHw${_src2}.h ${_OUTDIR_FILES}/IHw${_src2}.h ${_OUTDIR_FILES}/I${_src2}.h) + else(${_src1} MATCHES ^I) + set(_SRCS ${_SRCS} ${_OUTDIR_FILES}/${_src1}.cpp ${_OUTDIR_FILES}/${_src1}.h ${_OUTDIR_FILES}/hw${_src1}.h) + endif(${_src1} MATCHES ^I) + endforeach(f) + + set(_ROOTS -r "${arg_ROOT}:${CMAKE_CURRENT_SOURCE_DIR}") + + foreach(f ${arg_LINK}) + if(${f}_roots) + list(GET ${f}_roots 1 a) + if(${a} IN_LIST _ROOTS) + else() + set(_ROOTS ${_ROOTS} ${${f}_roots}) + endif() + endif() + endforeach(f) + + foreach(f ${arg_HEADERS}) + if(${f}_roots) + list(GET ${f}_roots 1 a) + if(${a} IN_LIST _ROOTS) + else() + set(_ROOTS ${_ROOTS} ${${f}_roots}) + endif() + endif() + set(_HEADERS ${_HEADERS} ${CMAKE_BINARY_DIR}/hidl-generated/${f} ${${f}_headers}) + endforeach(f) + + add_custom_command( + OUTPUT ${_SRCS} + COMMAND LD_LIBRARY_PATH=${CMAKE_SOURCE_DIR}/src/hidl:${CMAKE_SOURCE_DIR}/src/hidl/hashing/:${CMAKE_SOURCE_DIR}/src/hidl/utils/:${CMAKE_SOURCE_DIR}/src/hidl/host_utils/:${CMAKE_SOURCE_DIR}/src/system_core/base/ $<TARGET_FILE:hidl-gen> + -L c++ + ${_ROOTS} + -o ${_OUTDIR} + ${INTERFACES} + ${arg_NAME} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + DEPENDS hidl-gen ${arg_DEPENDS} + COMMENT Generating ${arg_NAME} + ) + + set(${_name}_ROOTPATH ${arg_ROOT}:${CMAKE_CURRENT_SOURCE_DIR}) + set(${_name}_headers ${_HEADERS} CACHE INTERNAL "") + set(${_name}_link ${arg_LINK} CACHE INTERNAL "") + set(${_name}_outdir ${_OUTDIR} CACHE INTERNAL "") + set(${_name}_srcs ${_SRCS} CACHE INTERNAL "") + set(${_name}_roots -r "${arg_ROOT}:${CMAKE_CURRENT_SOURCE_DIR}" CACHE INTERNAL "") + add_custom_target(${_name}_target DEPENDS ${_SRCS}) + + add_library(${_name} SHARED + ${_SRCS}) + add_dependencies(${_name} hidl-gen ${_name}_target) + target_include_directories(${_name} PUBLIC ${_OUTDIR}) + target_include_directories(${_name} PRIVATE ${_HEADERS}) + + target_link_libraries(${_name} libutils libcutils libbase libhidltransport ${arg_LINK} ${${_name}_link}) + + set_target_properties(${_name} PROPERTIES + PREFIX lib + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} + ) + + install(TARGETS ${_name} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER) + + install(DIRECTORY ${_OUTDIR_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/linux-hidl/${_SRC_PATH}) +endfunction(add_hidl) diff --git a/src/hidl/hashing/CMakeLists.txt b/src/hidl/hashing/CMakeLists.txt new file mode 100644 index 00000000..ad2e6f2c --- /dev/null +++ b/src/hidl/hashing/CMakeLists.txt @@ -0,0 +1,14 @@ +add_library(libhidl-gen-hash SHARED + Hash.cpp +) +target_include_directories(libhidl-gen-hash PUBLIC include) +target_include_directories(libhidl-gen-hash PRIVATE include/hidl-hash) +target_link_libraries(libhidl-gen-hash libutils libcutils libbase ${CRYPTO_LIBRARIES}) + +set_target_properties(libhidl-gen-hash PROPERTIES + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} +) + +install(TARGETS libhidl-gen-hash + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER) diff --git a/src/hidl/host_utils/CMakeLists.txt b/src/hidl/host_utils/CMakeLists.txt new file mode 100644 index 00000000..f056eabb --- /dev/null +++ b/src/hidl/host_utils/CMakeLists.txt @@ -0,0 +1,16 @@ +add_library(libhidl-gen-host-utils SHARED + Formatter.cpp + StringHelper.cpp +) + +target_include_directories(libhidl-gen-host-utils PUBLIC include) +target_include_directories(libhidl-gen-host-utils PRIVATE include/hidl-util) +target_link_libraries(libhidl-gen-host-utils libbase) + +set_target_properties(libhidl-gen-host-utils PROPERTIES + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} +) + +install(TARGETS libhidl-gen-host-utils + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER) diff --git a/src/hidl/utils/CMakeLists.txt b/src/hidl/utils/CMakeLists.txt new file mode 100644 index 00000000..0c495ffa --- /dev/null +++ b/src/hidl/utils/CMakeLists.txt @@ -0,0 +1,16 @@ +add_library(libhidl-gen-utils SHARED + FQName.cpp + FqInstance.cpp +) + +target_include_directories(libhidl-gen-utils PUBLIC include) +target_include_directories(libhidl-gen-utils PRIVATE include/hidl-util) +target_link_libraries(libhidl-gen-utils libbase) + +set_target_properties(libhidl-gen-utils PROPERTIES + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} +) + +install(TARGETS libhidl-gen-utils + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER)