cmake_minimum_required(VERSION 3.14)

project(ExifRename
	VERSION 3.2.1.0
	LANGUAGES CXX
	DESCRIPTION "A tool for renaming pictures using thier metadata."
)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC_SEARCH_PATHS ui)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets LinguistTools)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets LinguistTools)
find_package(ExtendedLog)
find_package(ExtendedLogViewer)

set(TS_FILES
	lang/ExifRename_de.ts
)

if(COMMAND qt_create_translation)
	qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
else()
	qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
endif()

set(H_FILES
	include/mainwindow.hpp
	include/progresswindow.hpp
	include/rename.hpp
	include/exif.hpp
)

set(CPP_FILES
	src/main.cpp
	src/exif.cpp
	src/mainwindow.cpp
	src/progresswindow.cpp
	src/rename.cpp
)

set(UI_FILES
	ui/mainwindow.ui
	ui/progresswindow.ui
)

set(RESOURCE_FILES
	resources/resources.qrc
)

if(WIN32)
	# we need the following to statements for the windows file-attributes configuration
	set(PROJECT_VENDOR "E W")
	set(WIN32_FILE_EXTENSION "exe")

	# path to icon of windows exe
	set(ICON_PATH resources/EXIF_Rename-32.ico)

	configure_file(
		resources/winres.rc.in
		winres.rc
		@ONLY
	)

    list(APPEND RESOURCE_FILES
		winres.rc
    )
endif()

## Declare that the project will have a German translation.
#qt_standard_project_setup(I18N_TRANSLATED_LANGUAGES de)

#qt_add_translations(
#	TARGETS ExifRename
#	TS_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/lang/
#	QM_FILES_OUTPUT_VARIABLE QM_FILES
#)

set(CMAKE_SKIP_INSTALL_RPATH ON)
set(CMAKE_SKIP_RPATH ON)


set(PROJECT_FILES
	${UI_FILES}
	${CPP_FILES}
	${H_FILES}
#	${TS_FILES}
	${QM_FILES}
	${RESOURCE_FILES}
)

add_executable(ExifRename
	${PROJECT_FILES}
)

target_include_directories(ExifRename PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> # include directory in your build tree
    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

target_link_libraries(ExifRename PRIVATE
       	Qt${QT_VERSION_MAJOR}::Widgets
        ExtendedLog
        ExtendedLogViewer
)

set_target_properties(ExifRename PROPERTIES
	MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
       	MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
	MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
	MACOSX_BUNDLE TRUE
	WIN32_EXECUTABLE TRUE
)

include(GNUInstallDirs)

install(TARGETS ExifRename
	#BUNDLE DESTINATION .
	#LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
	#ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

install(FILES ${QM_FILES}
	DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/i18n
)

if(QT_VERSION_MAJOR EQUAL 6)
	qt_finalize_executable(ExifRename)
endif()
