76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
|  | diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||
|  | index 18190f647..f4b1b359d 100644
 | ||
|  | --- a/CMakeLists.txt
 | ||
|  | +++ b/CMakeLists.txt
 | ||
|  | @@ -23,6 +23,9 @@ endif()
 | ||
|  |   | ||
|  |  project(AOM C CXX) | ||
|  |   | ||
|  | +include(GNUInstallDirs)
 | ||
|  | +include(CMakePackageConfigHelpers)
 | ||
|  | +
 | ||
|  |  # GENERATED source property global visibility. | ||
|  |  if(POLICY CMP0118) | ||
|  |    cmake_policy(SET CMP0118 NEW) | ||
|  | @@ -302,6 +305,52 @@ if(BUILD_SHARED_LIBS)
 | ||
|  |    set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_static) | ||
|  |  endif() | ||
|  |   | ||
|  | +set(PUBLIC_HEADERS
 | ||
|  | +    aom/aom.h
 | ||
|  | +    aom/aom_codec.h
 | ||
|  | +    aom/aom_decoder.h
 | ||
|  | +    aom/aom_encoder.h
 | ||
|  | +    aom/aom_frame_buffer.h
 | ||
|  | +    aom/aom_image.h
 | ||
|  | +    aom/aom_integer.h
 | ||
|  | +    aom/aomcx.h
 | ||
|  | +    aom/aomdx.h
 | ||
|  | +)
 | ||
|  | +
 | ||
|  | +set_target_properties(aom PROPERTIES
 | ||
|  | +                          PUBLIC_HEADER "${PUBLIC_HEADERS}")
 | ||
|  | +
 | ||
|  | +
 | ||
|  | +target_include_directories(aom
 | ||
|  | +                            PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
 | ||
|  | +                                   $<INSTALL_INTERFACE:include>)
 | ||
|  | +
 | ||
|  | +install(TARGETS aom
 | ||
|  | +        EXPORT unofficial-aom-targets
 | ||
|  | +        ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
 | ||
|  | +        LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
 | ||
|  | +        RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
 | ||
|  | +        PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aom")
 | ||
|  | +
 | ||
|  | +install(EXPORT unofficial-aom-targets
 | ||
|  | +        FILE unofficial-aom-targets.cmake
 | ||
|  | +        NAMESPACE unofficial::
 | ||
|  | +        DESTINATION lib/cmake/aom)
 | ||
|  | +
 | ||
|  | +configure_package_config_file(cmake/aom-config.cmake.in
 | ||
|  | +                              ${CMAKE_CURRENT_BINARY_DIR}/aom-config.cmake
 | ||
|  | +                              INSTALL_DESTINATION lib/cmake/aom
 | ||
|  | +                              NO_SET_AND_CHECK_MACRO
 | ||
|  | +                              NO_CHECK_REQUIRED_COMPONENTS_MACRO)
 | ||
|  | +
 | ||
|  | +write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/aom-config-version.cmake
 | ||
|  | +                                 VERSION ${SO_FILE_VERSION}
 | ||
|  | +                                 COMPATIBILITY SameMajorVersion)
 | ||
|  | +
 | ||
|  | +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/aom-config.cmake
 | ||
|  | +              ${CMAKE_CURRENT_BINARY_DIR}/aom-config-version.cmake
 | ||
|  | +        DESTINATION lib/cmake/aom)
 | ||
|  | +
 | ||
|  |  # Setup dependencies. | ||
|  |  if(CONFIG_THREE_PASS) | ||
|  |    setup_ivf_dec_targets() | ||
|  | diff --git a/cmake/aom-config.cmake.in b/cmake/aom-config.cmake.in
 | ||
|  | new file mode 100644 | ||
|  | index 000000000..91cac3b5b
 | ||
|  | --- /dev/null
 | ||
|  | +++ b/cmake/aom-config.cmake.in
 | ||
|  | @@ -0,0 +1,2 @@
 | ||
|  | +@PACKAGE_INIT@
 | ||
|  | +include(${CMAKE_CURRENT_LIST_DIR}/unofficial-aom-targets.cmake)
 |