# -*- CMakeLists.txt generated by CodeLite IDE. Do not edit by hand -*-

cmake_minimum_required(VERSION 3.5)


#{{{{ User Code 01
# Place your code here
#}}}}

enable_language(CXX C ASM)
# Project name
project(TVLite)



#{{{{ User Code 02
# Place your code here
include(GNUInstallDirs)
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  SET(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "install prefix" FORCE)
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)

#set(CMAKE_VERBOSE_MAKEFILE 1)
#}}}}

# This setting is useful for providing JSON file used by CodeLite for code completion
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)

set(CONFIGURATION_NAME "Release")

set(CL_WORKSPACE_DIRECTORY ..)
# Set default locations
set(CL_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/${CL_WORKSPACE_DIRECTORY}/cmake-build-${CONFIGURATION_NAME}/output)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})

# Projects


# Top project
# Define some variables
set(PROJECT_TVLite_PATH "${CMAKE_CURRENT_LIST_DIR}")
set(WORKSPACE_PATH "${CMAKE_CURRENT_LIST_DIR}/..")



#{{{{ User Code 1
# Place your code here

find_package(PkgConfig REQUIRED)

pkg_check_modules(SQLite3 REQUIRED sqlite3)
include_directories(${SQLite3_INCLUDE_DIR})

pkg_check_modules(RAPIDJSON REQUIRED RapidJSON)
include_directories(${RAPIDJSON_INCLUDE_DIR})

find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIRS})

if(NOT DEFINED GTKVER)
   set (GTKVER "gtk+-3.0")
endif(NOT DEFINED GTKVER)

pkg_check_modules(GTK REQUIRED ${GTKVER})
add_definitions(${GTK_CFLAGS})

pkg_check_modules(LIBVLC REQUIRED libvlc)
include_directories("${LIBVLC_INCLUDEDIR}")

if(NOT DEFINED WX_CONFIG)
  set (WX_CONFIG "wx-config")
endif(NOT DEFINED WX_CONFIG)

include(FindGettext)
find_package(Gettext REQUIRED)

option(PRINT_DEBUG "" OFF)
if(PRINT_DEBUG)
  add_definitions(-DPRINT_DEBUG)
endif(PRINT_DEBUG)

#}}}}

include_directories(
    .

)


# Compiler options
execute_process(COMMAND 
    ${WX_CONFIG}  --cxxflags --unicode=yes --debug=no
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_1)
execute_process(COMMAND 
    ${WX_CONFIG}  --cxxflags --unicode=yes --debug=no
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_2)
add_definitions(${CL_VAR_1})
add_definitions(${CL_VAR_2})
add_definitions(-DNDEBUG -O2)
add_definitions(-Wall)
add_definitions(-O2)
add_definitions(
    -D__WX__
    -DNDEBUG
    -DNDEBUG
)


# Linker options
execute_process(COMMAND 
    ${WX_CONFIG}  --debug=no --libs --unicode=yes
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_3)
set(LINK_OPTIONS ${CL_VAR_3})


if(WIN32)
    # Resource options
    execute_process(COMMAND 
        wx-config --rcflags
        OUTPUT_VARIABLE
        CL_TMP_VAR
        OUTPUT_STRIP_TRAILING_WHITESPACE)
    string(STRIP ${CL_TMP_VAR} CL_VAR_4)
    set(RC_OPTIONS ${CL_VAR_4})
endif(WIN32)

# Library path
link_directories(
    .
)

# Define the CXX sources
set ( CXX_SRCS
    ${CMAKE_CURRENT_LIST_DIR}/locallistdialog.cpp
    ${CMAKE_CURRENT_LIST_DIR}/channeledit.cpp
    ${CMAKE_CURRENT_LIST_DIR}/vlcquestiondialog.cpp
    ${CMAKE_CURRENT_LIST_DIR}/baseprotocol.cpp
    ${CMAKE_CURRENT_LIST_DIR}/textwrapper.cpp
    ${CMAKE_CURRENT_LIST_DIR}/acestreamprotocolhandler.cpp
    ${CMAKE_CURRENT_LIST_DIR}/dlprogress.cpp
    ${CMAKE_CURRENT_LIST_DIR}/subscription.cpp
    ${CMAKE_CURRENT_LIST_DIR}/recordchoice.cpp
    ${CMAKE_CURRENT_LIST_DIR}/xtreamdlg.cpp
    ${CMAKE_CURRENT_LIST_DIR}/aceprotocol.cpp
    ${CMAKE_CURRENT_LIST_DIR}/acestreamenginehandler.cpp
    ${CMAKE_CURRENT_LIST_DIR}/prefdialog.cpp
    ${CMAKE_CURRENT_LIST_DIR}/channelinfo.cpp
    ${CMAKE_CURRENT_LIST_DIR}/baseprotocolhandler.cpp
    ${CMAKE_CURRENT_LIST_DIR}/resource.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ytprotocolhandler.cpp
    ${CMAKE_CURRENT_LIST_DIR}/estogglebutton.cpp
    ${CMAKE_CURRENT_LIST_DIR}/channellistctrl.cpp
    ${CMAKE_CURRENT_LIST_DIR}/busyobject.cpp
    ${CMAKE_CURRENT_LIST_DIR}/sopthread.cpp
    ${CMAKE_CURRENT_LIST_DIR}/m3ufile.cpp
    ${CMAKE_CURRENT_LIST_DIR}/statusgauge.cpp
    ${CMAKE_CURRENT_LIST_DIR}/vlcplayer.cpp
    ${CMAKE_CURRENT_LIST_DIR}/vlcoptdlg.cpp
    ${CMAKE_CURRENT_LIST_DIR}/locallist.cpp
    ${CMAKE_CURRENT_LIST_DIR}/subscriptiondialog.cpp
    ${CMAKE_CURRENT_LIST_DIR}/proxy.cpp
    ${CMAKE_CURRENT_LIST_DIR}/streamprotocolhandler.cpp
    ${CMAKE_CURRENT_LIST_DIR}/subscriptionlistdialog.cpp
    ${CMAKE_CURRENT_LIST_DIR}/sopprotocolhandler.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ytprotocol.cpp
    ${CMAKE_CURRENT_LIST_DIR}/controlsframe.cpp
    ${CMAKE_CURRENT_LIST_DIR}/sopprotocol.cpp
    ${CMAKE_CURRENT_LIST_DIR}/configuration.cpp
    ${CMAKE_CURRENT_LIST_DIR}/downloadclient.cpp
    ${CMAKE_CURRENT_LIST_DIR}/gui.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ytthread.cpp
    ${CMAKE_CURRENT_LIST_DIR}/database.cpp
    ${CMAKE_CURRENT_LIST_DIR}/channel.cpp
    ${CMAKE_CURRENT_LIST_DIR}/main.cpp
    ${CMAKE_CURRENT_LIST_DIR}/localdialog.cpp
)

set_source_files_properties(
    ${CXX_SRCS} PROPERTIES COMPILE_FLAGS 
    " -DNDEBUG -O2 -Wall")

if(WIN32)
    enable_language(RC)
    set(CMAKE_RC_COMPILE_OBJECT
        "<CMAKE_RC_COMPILER> ${RC_OPTIONS} -O coff -i <SOURCE> -o <OBJECT>")
endif(WIN32)



#{{{{ User Code 2
# Place your code here
if (${SQLite3_FOUND})
   set (LINK_OPTIONS "${LINK_OPTIONS} ${SQLite3_LDFLAGS}")
   # message("Link options ${LINK_OPTIONS}")
endif()

if (${CURL_FOUND})
   set(LINK_OPTIONS "${LINK_OPTIONS} ${CURL_LIBRARIES}")
endif()

message("Updating file list for parsing")

execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json
                ${CMAKE_SOURCE_DIR}/compile_commands.json)

set(LINK_OPTIONS "${LINK_OPTIONS} ${GTK_LDFLAGS} ${LIBVLC_LDFLAGS} -lX11")
#}}}}

add_executable(TVLite ${RC_SRCS} ${CXX_SRCS} ${C_SRCS} ${ASM_SRCS})
target_link_libraries(TVLite ${LINK_OPTIONS})

target_link_libraries(TVLite
    uuid
)



#{{{{ User Code 3
# Place your code here
install(TARGETS "TVLite" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(FILES "${CMAKE_CURRENT_LIST_DIR}/TVLite.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
install(FILES "${CMAKE_CURRENT_LIST_DIR}/TVLite.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pixmaps")
install(FILES "${CMAKE_CURRENT_LIST_DIR}/logo.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/TVLite")
set(LANGUAGESET de el es hr hu it ro ru tr)
set(LOCALEDIR "/usr/share/locale")
set(PODIR "${CMAKE_CURRENT_LIST_DIR}/../intl")

message ("Translation directory is ${PODIR}")
foreach(lang ${LANGUAGESET})
    message("Preparing for ${lang}")
    set(pofile "${PODIR}/${lang}.po")
    set(gmofile "${CMAKE_CURRENT_BINARY_DIR}/${lang}.gmo")
    message("Gmofile is ${gmofile}")
    GETTEXT_PROCESS_PO_FILES(${lang} ALL PO_FILES ${pofile})
    install(FILES ${gmofile} DESTINATION "${LOCALEDIR}/${lang}/LC_MESSAGES/" RENAME ${CMAKE_PROJECT_NAME}.mo)
endforeach()

# Install AppStream metadata
set(APPSTREAM_METADATA "com.tv_lite.tv_lite.metainfo.xml")
install(FILES ${APPSTREAM_METADATA}
    DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo"
    PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
#}}}}

