cmake_minimum_required(VERSION 3.10)
project(simple-app VERSION 0.10 DESCRIPTION -WIP)

set(CMAKE_CXX_VISIBILITY_PRESET hidden) # linux: don't export all symbols in .so
set(CMAKE_POSITION_INDEPENDENT_CODE ON) # linux: use -fPIC on .a so they can be used by .so

if (NOT "${CMAKE_CXX_STANDARD}")
  set(CMAKE_CXX_STANDARD 17)
endif()

# make use of runtime directory
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/latest")


#find_package(freetype CONFIG REQUIRED)
find_package(imgui REQUIRED)
find_package(glfw3 REQUIRED)
find_package(OpenGL REQUIRED COMPONENTS OpenGL)

#find_package(httplib CONFIG REQUIRED)
#find_package(nfd CONFIG REQUIRED)
#find_package(Stb REQUIRED)
#find_package(ZLIB CONFIG REQUIRED)
#find_package(minizip-ng CONFIG REQUIRED)

if(CONAN_GENERATORS_FOLDER)
    message(STATUS "Projekt jest konfigurowany przez Conana!")
else()
    message(STATUS "Projekt budowany klasycznie (bez Conana).")
endif()

add_subdirectory(src)

add_executable(${PROJECT_NAME}
   ${SRC}
)

include(${CMAKE_SOURCE_DIR}/cmake/setup-bundle.cmake)

if(WIN32)
    target_link_options(${PROJECT_NAME} PRIVATE 
        "-static-libgcc" 
        "-static-libstdc++" 
        #"-static"
    )
endif()

target_link_libraries(${PROJECT_NAME}
        glfw
	imgui::imgui
        ${OPENGL_LIBRARIES}
)

add_custom_target(deploy)
add_custom_command(TARGET deploy POST_BUILD
    COMMAND ${CMAKE_COMMAND}
        -DAPP="$<TARGET_FILE:${PROJECT_NAME}>"
        -DSEARCH_DIRS="${CMAKE_LINK_DIRECTORIES}"
        -P "${CMAKE_SOURCE_DIR}/cmake/deploy.cmake"
)
#add_custom_command(TARGET deploy POST_BUILD
#    COMMAND ${CMAKE_COMMAND} -E echo "--- Rozpoczynam wdrozenie (deploy) ---"
#    COMMAND ${CMAKE_COMMAND} 
#        -C "
#            include(BundleUtilities)
#            fixup_bundle(\"$<TARGET_FILE:${PROJECT_NAME}>\" \"\" \"\${CMAKE_LINK_DIRECTORIES}\")
#        "
#    VERBATIM
#)

#set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
#set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_GENERATOR "ZIP")
# override ugly names for zip and top level folder
if (WIN32)
    set(CPACK_ARCHIVE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-win64")
else ()
    set(CPACK_ARCHIVE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-linux64")
endif ()
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")

include(CPack)
