cmake_minimum_required (VERSION 2.6)
# Sources and private headers
SET(libubootenv_SOURCES
  uboot_env.c
  uboot_private.h
)

# Public headers
SET(include_HEADERS
  libuboot.h
)

include(GNUInstallDirs) # for the CMAKE_INSTALL_LIBDIR variable

add_library(ubootenv SHARED ${libubootenv_SOURCES} ${include_HEADERS})
SET_TARGET_PROPERTIES(ubootenv PROPERTIES VERSION ${VERSION} SOVERSION ${SOVERSION})

ADD_LIBRARY(ubootenv_static STATIC ${libubootenv_SOURCES} ${include_HEADERS})
SET_TARGET_PROPERTIES(ubootenv_static PROPERTIES OUTPUT_NAME ubootenv)
add_executable(fw_printenv fw_printenv.c)
add_executable(fw_setenv fw_setenv.c)
target_link_libraries(ubootenv z)
target_link_libraries(fw_printenv ubootenv)
target_link_libraries(fw_setenv ubootenv)

install (TARGETS ubootenv ubootenv_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
install (FILES libuboot.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install (TARGETS fw_printenv DESTINATION ${CMAKE_INSTALL_BINDIR})
install (TARGETS fw_setenv DESTINATION ${CMAKE_INSTALL_BINDIR})

# Handle pkg-config files
set(prefix      ${CMAKE_INSTALL_PREFIX})
set(exec_prefix ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})
set(includedir  ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
set(libdir      ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})

configure_file(${CMAKE_SOURCE_DIR}/src/libubootenv.pc.in ${CMAKE_BINARY_DIR}/libubootenv.pc @ONLY)
set(LIBUBOOTENV_PKG_CONFIG_FILES ${CMAKE_BINARY_DIR}/libubootenv.pc)
message(STATUS "Generate ${LIBUBOOTENV_PKG_CONFIG_FILES}")
# Install pkg-config files
install(FILES ${LIBUBOOTENV_PKG_CONFIG_FILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
