Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Creating Qt gui #23

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
version: 5.0.{build}

image:
- Visual Studio 2017

skip_tags: true

clone_folder: C:\projects\git\inpeem

install:
- cd C:\projects
- mkdir 3rdparty
- cd 3rdparty
- curl -L -s -O https://github.com/TerraME/terrame/releases/download/2.0.1/terrame-2.0.1-win64.zip
- 7z x terrame-2.0.1-win64.zip
- mv terrame-2.0.1-win64 terrame
- cd ..

build_script:
- mkdir solution
- cd solution
- xcopy /Y ..\git\inpeem\build\scripts\win\inpeem_conf.bat %CD%
- set _INPEEM_TERRAME_DIR=C:/projects/3rdparty/terrame
- inpeem_conf.bat
- xcopy /Y build\installer\*.exe C:\projects\git\inpeem\installer\

artifacts:
- path: installer\*.exe
name: INPE-EM Installer
250 changes: 137 additions & 113 deletions build/cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
cmake_minimum_required(VERSION 3.12.2)

include(CSharpUtilities)
#include(CSharpUtilities)

if(NOT WIN32 AND MSVC)
message(FATAL_ERROR "This project works only on Windows and Visual Studio.")
endif()
#if(NOT WIN32 AND MSVC)
# message(FATAL_ERROR "This project works only on Windows and Visual Studio.")
#endif()

project(INPE-EM)

set(INPEEM_VERSION_MAJOR 4)
set(INPEEM_VERSION_MINOR 1)
set(INPEEM_VERSION_MAJOR 5)
set(INPEEM_VERSION_MINOR 0)
#set(INPEEM_VERSION_PATCH 1)

if(DEFINED INPEEM_VERSION_PATCH)
@@ -20,119 +20,143 @@ endif()

get_filename_component(INPEEM_ROOT_DIR "../../" ABSOLUTE)

set(INPEEM_SRC_DIR ${INPEEM_ROOT_DIR}/src/cppcli)
include_directories(${INPEEM_SRC_DIR})
#set(INPEEM_SRC_DIR ${INPEEM_ROOT_DIR}/src/cppcli)
#include_directories(${INPEEM_SRC_DIR})

set(INPEEM_RESOURCES_DIR ${INPEEM_ROOT_DIR}/resources)
include_directories(${INPEEM_RESOURCES_DIR})

file(GLOB INPEEM_SRC_CPP_FILES ${INPEEM_SRC_DIR}/*.cpp)
file(GLOB INPEEM_SRC_H_FILES ${INPEEM_SRC_DIR}/*.h)
file(GLOB INPEEM_SRC_RESX_FILES ${INPEEM_SRC_DIR}/*.resx)
source_group("Source Files" FILES ${INPEEM_SRC_CPP_FILES})
source_group("Header Files" FILES ${INPEEM_SRC_H_FILES})

file(GLOB INPEEM_APP_ICON ${INPEEM_RESOURCES_DIR}/icon.ico)
file(GLOB INPEEM_APP_ICON_RC ${INPEEM_RESOURCES_DIR}/LuccME.rc)

file(GLOB INPEEM_RESOURCE_FILES ${INPEEM_APP_ICON} ${INPEEM_APP_ICON_RC})
source_group("Resource Files" FILES ${INPEEM_RESOURCE_FILES})

set(INPEEM_FILES ${INPEEM_SRC_CPP_FILES} ${INPEEM_SRC_H_FILES} ${INPEEM_SRC_RESX_FILES}
${INPEEM_RESOURCE_FILES})

add_executable(${PROJECT_NAME} WIN32 ${INPEEM_FILES})

set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:main")
set_target_properties(${PROJECT_NAME} PROPERTIES MINSIZEREL "/SUBSYSTEM:WINDOWS /ENTRY:main")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")

set_property(TARGET ${PROJECT_NAME} PROPERTY COMMON_LANGUAGE_RUNTIME "")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_ROOTNAMESPACE "INPEEM")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_CONFIGURATION_CLRSupport "true")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_CLRSupport "true")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_KEYWORD "ManagedCProj")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2")
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE TRUE)
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_REFERENCES
"System"
"System.Data"
"System.Drawing"
"System.Windows.Forms"
"System.Xml")

csharp_set_windows_forms_properties(
${INPEEM_SRC_CPP_FILES}
${INPEEM_SRC_H_FILES}
${INPEEM_SRC_RESX_FILES}
)

set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME runtime)

install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION . COMPONENT runtime
LIBRARY DESTINATION . COMPONENT runtime
ARCHIVE DESTINATION . COMPONENT runtime
BUNDLE DESTINATION . COMPONENT runtime)

install(FILES ${INPEEM_APP_ICON}
DESTINATION .
COMPONENT runtime)

set(INPEEM_DOC_DIR ${INPEEM_ROOT_DIR}/doc)
file(GLOB INPEEM_DOC_FILES ${INPEEM_DOC_DIR}/*.chm)
install(FILES ${INPEEM_DOC_FILES}
DESTINATION .
COMPONENT runtime)

install(DIRECTORY ${INPEEM_TERRAME_DIR}
DESTINATION .
COMPONENT runtime)

set(INPEEM_LUA_DIR ${INPEEM_ROOT_DIR}/src/terrame/)
set(INPEEM_PACKAGE_DIR terrame/bin/packages/inpeem)
install(DIRECTORY ${INPEEM_LUA_DIR}
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

install(FILES ${INPEEM_RESOURCES_DIR}/inpeem.bat
DESTINATION terrame/bin
COMPONENT runtime)

set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
include(InstallRequiredSystemLibraries)

if(INPEEM_BUILD_AS_BUNDLE)
configure_file(${PROJECT_SOURCE_DIR}/fixup_bundle.cmake.in
${CMAKE_BINARY_DIR}/fixup_bundle.cmake @ONLY)
install(SCRIPT ${CMAKE_BINARY_DIR}/fixup_bundle.cmake COMPONENT runtime)
if(UNIX AND NOT APPLE)
set(LINUX TRUE)
endif()

if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER MATCHES ".*clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -std=c++11")
if(LINUX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath,\$ORIGIN -Wl,-rpath-link,\$ORIGIN")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--disable-new-dtags")
endif()
endif()

configure_file(${PROJECT_SOURCE_DIR}/terrame_package_description.cmake.in
${CMAKE_BINARY_DIR}/description.lua @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/description.lua
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

get_filename_component(INPEEM_AMAZON_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_epsg29101.zip ABSOLUTE)
get_filename_component(INPEEM_AMAZON_REGROW_RATES_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_netemissions_epsg5880.zip ABSOLUTE)
set(INPEEM_DATA_DIR ${CMAKE_BINARY_DIR}/data)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${INPEEM_DATA_DIR})
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_REGROW_RATES_DATA}
WORKING_DIRECTORY ${INPEEM_DATA_DIR}
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_DATA}
WORKING_DIRECTORY ${INPEEM_DATA_DIR}
)
install(DIRECTORY ${INPEEM_DATA_DIR}
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

configure_file(${PROJECT_SOURCE_DIR}/inpeem_version.h.in
${INPEEM_SRC_DIR}/Version.h @ONLY)
#file(GLOB INPEEM_SRC_CPP_FILES ${INPEEM_SRC_DIR}/*.cpp)
#file(GLOB INPEEM_SRC_H_FILES ${INPEEM_SRC_DIR}/*.h)
#file(GLOB INPEEM_SRC_RESX_FILES ${INPEEM_SRC_DIR}/*.resx)
#source_group("Source Files" FILES ${INPEEM_SRC_CPP_FILES})
#source_group("Header Files" FILES ${INPEEM_SRC_H_FILES})

#file(GLOB INPEEM_APP_ICON ${INPEEM_RESOURCES_DIR}/icon.ico)
#file(GLOB INPEEM_APP_ICON_RC ${INPEEM_RESOURCES_DIR}/LuccME.rc)

#file(GLOB INPEEM_RESOURCE_FILES ${INPEEM_APP_ICON} ${INPEEM_APP_ICON_RC})
#source_group("Resource Files" FILES ${INPEEM_RESOURCE_FILES})

#set(INPEEM_FILES ${INPEEM_SRC_CPP_FILES} ${INPEEM_SRC_H_FILES} ${INPEEM_SRC_RESX_FILES}
# ${INPEEM_RESOURCE_FILES})

#add_executable(${PROJECT_NAME} WIN32 ${INPEEM_FILES})

# set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:main")
# set_target_properties(${PROJECT_NAME} PROPERTIES MINSIZEREL "/SUBSYSTEM:WINDOWS /ENTRY:main")
# set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
# set_target_properties(${PROJECT_NAME} PROPERTIES RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")

#set_property(TARGET ${PROJECT_NAME} PROPERTY COMMON_LANGUAGE_RUNTIME "")
#set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_ROOTNAMESPACE "INPEEM")
#set_property(TARGET ${PROJECT_NAME} PROPERTY VS_CONFIGURATION_CLRSupport "true")
#set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_CLRSupport "true")
#set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_KEYWORD "ManagedCProj")
# set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2")
# set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE TRUE)
# set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_REFERENCES
# "System"
# "System.Data"
# "System.Drawing"
# "System.Windows.Forms"
# "System.Xml")

# csharp_set_windows_forms_properties(
# ${INPEEM_SRC_CPP_FILES}
# ${INPEEM_SRC_H_FILES}
# ${INPEEM_SRC_RESX_FILES}
# )

# set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME runtime)

# install(TARGETS ${PROJECT_NAME}
# RUNTIME DESTINATION . COMPONENT runtime
# LIBRARY DESTINATION . COMPONENT runtime
# ARCHIVE DESTINATION . COMPONENT runtime
# BUNDLE DESTINATION . COMPONENT runtime)

# install(FILES ${INPEEM_APP_ICON}
# DESTINATION .
# COMPONENT runtime)

# set(INPEEM_DOC_DIR ${INPEEM_ROOT_DIR}/doc)
# file(GLOB INPEEM_DOC_FILES ${INPEEM_DOC_DIR}/*.chm)
# install(FILES ${INPEEM_DOC_FILES}
# DESTINATION .
# COMPONENT runtime)

# install(DIRECTORY ${INPEEM_TERRAME_DIR}
# DESTINATION .
# COMPONENT runtime)

# set(INPEEM_LUA_DIR ${INPEEM_ROOT_DIR}/src/terrame/)
# set(INPEEM_PACKAGE_DIR terrame/bin/packages/inpeem)
# install(DIRECTORY ${INPEEM_LUA_DIR}
# DESTINATION ${INPEEM_PACKAGE_DIR}
# COMPONENT runtime)

# install(FILES ${INPEEM_RESOURCES_DIR}/inpeem.bat
# DESTINATION terrame/bin
# COMPONENT runtime)

# set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
# include(InstallRequiredSystemLibraries)

# if(INPEEM_BUILD_AS_BUNDLE)
# configure_file(${PROJECT_SOURCE_DIR}/fixup_bundle.cmake.in
# ${CMAKE_BINARY_DIR}/fixup_bundle.cmake @ONLY)
# install(SCRIPT ${CMAKE_BINARY_DIR}/fixup_bundle.cmake COMPONENT runtime)
# endif()

# configure_file(${PROJECT_SOURCE_DIR}/terrame_package_description.cmake.in
# ${CMAKE_BINARY_DIR}/description.lua @ONLY)
# install(FILES ${CMAKE_BINARY_DIR}/description.lua
# DESTINATION ${INPEEM_PACKAGE_DIR}
# COMPONENT runtime)

# get_filename_component(INPEEM_AMAZON_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_epsg29101.zip ABSOLUTE)
# get_filename_component(INPEEM_AMAZON_REGROW_RATES_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_netemissions_epsg5880.zip ABSOLUTE)
# set(INPEEM_DATA_DIR ${CMAKE_BINARY_DIR}/data)
# execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${INPEEM_DATA_DIR})
# execute_process(
# COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_REGROW_RATES_DATA}
# WORKING_DIRECTORY ${INPEEM_DATA_DIR}
# )
# execute_process(
# COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_DATA}
# WORKING_DIRECTORY ${INPEEM_DATA_DIR}
# )
# install(DIRECTORY ${INPEEM_DATA_DIR}
# DESTINATION ${INPEEM_PACKAGE_DIR}
# COMPONENT runtime)

# configure_file(${PROJECT_SOURCE_DIR}/inpeem_version.h.in
# ${INPEEM_SRC_DIR}/Version.h @ONLY)


# if(MSVC)
# set(CMAKE_DEBUG_POSTFIX "d")
# add_definitions(/MP)
# endif()

#add_subdirectory(cppcli)

include(inpeem_macros.cmake)

add_subdirectory(qt)

configure_file(${PROJECT_SOURCE_DIR}/cpack_installer_generator.cmake.in
${CMAKE_BINARY_DIR}/cpack_installer_generator.cmake @ONLY)
140 changes: 140 additions & 0 deletions build/cmake/cppcli/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
cmake_minimum_required(VERSION 3.12.2)

include(CSharpUtilities)

if(NOT WIN32 AND MSVC)
message(FATAL_ERROR "This project works only on Windows and Visual Studio.")
endif()

# project(INPE-EM)

# set(INPEEM_VERSION_MAJOR 4)
# set(INPEEM_VERSION_MINOR 1)
# #set(INPEEM_VERSION_PATCH 1)

# if(DEFINED INPEEM_VERSION_PATCH)
# set(INPEEM_VERSION "${INPEEM_VERSION_MAJOR}.${INPEEM_VERSION_MINOR}.${INPEEM_VERSION_PATCH}")
# else()
# set(INPEEM_VERSION "${INPEEM_VERSION_MAJOR}.${INPEEM_VERSION_MINOR}")
# endif()

# get_filename_component(INPEEM_ROOT_DIR "../../" ABSOLUTE)

set(INPEEM_SRC_DIR ${INPEEM_ROOT_DIR}/src/cppcli)
include_directories(${INPEEM_SRC_DIR})

#set(INPEEM_RESOURCES_DIR ${INPEEM_ROOT_DIR}/resources)
#include_directories(${INPEEM_RESOURCES_DIR})

file(GLOB INPEEM_SRC_CPP_FILES ${INPEEM_SRC_DIR}/*.cpp)
file(GLOB INPEEM_SRC_H_FILES ${INPEEM_SRC_DIR}/*.h)
file(GLOB INPEEM_SRC_RESX_FILES ${INPEEM_SRC_DIR}/*.resx)
source_group("Source Files" FILES ${INPEEM_SRC_CPP_FILES})
source_group("Header Files" FILES ${INPEEM_SRC_H_FILES})

file(GLOB INPEEM_APP_ICON ${INPEEM_RESOURCES_DIR}/icon.ico)
file(GLOB INPEEM_APP_ICON_RC ${INPEEM_RESOURCES_DIR}/LuccME.rc)

file(GLOB INPEEM_RESOURCE_FILES ${INPEEM_APP_ICON} ${INPEEM_APP_ICON_RC})
source_group("Resource Files" FILES ${INPEEM_RESOURCE_FILES})

set(INPEEM_FILES ${INPEEM_SRC_CPP_FILES} ${INPEEM_SRC_H_FILES} ${INPEEM_SRC_RESX_FILES}
${INPEEM_RESOURCE_FILES})

add_executable(${PROJECT_NAME} WIN32 ${INPEEM_FILES})

set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:main")
set_target_properties(${PROJECT_NAME} PROPERTIES MINSIZEREL "/SUBSYSTEM:WINDOWS /ENTRY:main")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")

set_property(TARGET ${PROJECT_NAME} PROPERTY COMMON_LANGUAGE_RUNTIME "")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_ROOTNAMESPACE "INPEEM")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_CONFIGURATION_CLRSupport "true")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_CLRSupport "true")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_KEYWORD "ManagedCProj")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2")
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE TRUE)
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_REFERENCES
"System"
"System.Data"
"System.Drawing"
"System.Windows.Forms"
"System.Xml")

csharp_set_windows_forms_properties(
${INPEEM_SRC_CPP_FILES}
${INPEEM_SRC_H_FILES}
${INPEEM_SRC_RESX_FILES}
)

set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME runtime)

install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION . COMPONENT runtime
LIBRARY DESTINATION . COMPONENT runtime
ARCHIVE DESTINATION . COMPONENT runtime
BUNDLE DESTINATION . COMPONENT runtime)

install(FILES ${INPEEM_APP_ICON}
DESTINATION .
COMPONENT runtime)

set(INPEEM_DOC_DIR ${INPEEM_ROOT_DIR}/doc)
file(GLOB INPEEM_DOC_FILES ${INPEEM_DOC_DIR}/*.chm)
install(FILES ${INPEEM_DOC_FILES}
DESTINATION .
COMPONENT runtime)

install(DIRECTORY ${INPEEM_TERRAME_DIR}
DESTINATION .
COMPONENT runtime)

set(INPEEM_LUA_DIR ${INPEEM_ROOT_DIR}/src/terrame/)
set(INPEEM_PACKAGE_DIR terrame/bin/packages/inpeem)
install(DIRECTORY ${INPEEM_LUA_DIR}
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

install(FILES ${INPEEM_RESOURCES_DIR}/inpeem.bat
DESTINATION terrame/bin
COMPONENT runtime)

set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
include(InstallRequiredSystemLibraries)

if(INPEEM_BUILD_AS_BUNDLE)
configure_file(${PROJECT_SOURCE_DIR}/fixup_bundle.cmake.in
${CMAKE_BINARY_DIR}/fixup_bundle.cmake @ONLY)
install(SCRIPT ${CMAKE_BINARY_DIR}/fixup_bundle.cmake COMPONENT runtime)
endif()

configure_file(${PROJECT_SOURCE_DIR}/terrame_package_description.cmake.in
${CMAKE_BINARY_DIR}/description.lua @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/description.lua
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

get_filename_component(INPEEM_AMAZON_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_epsg29101.zip ABSOLUTE)
get_filename_component(INPEEM_AMAZON_REGROW_RATES_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_netemissions_epsg5880.zip ABSOLUTE)
set(INPEEM_DATA_DIR ${CMAKE_BINARY_DIR}/data)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${INPEEM_DATA_DIR})
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_REGROW_RATES_DATA}
WORKING_DIRECTORY ${INPEEM_DATA_DIR}
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_DATA}
WORKING_DIRECTORY ${INPEEM_DATA_DIR}
)
install(DIRECTORY ${INPEEM_DATA_DIR}
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

configure_file(${PROJECT_SOURCE_DIR}/inpeem_version.h.in
${INPEEM_SRC_DIR}/Version.h @ONLY)

configure_file(${PROJECT_SOURCE_DIR}/cpack_installer_generator.cmake.in
${CMAKE_BINARY_DIR}/cpack_installer_generator.cmake @ONLY)
set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_BINARY_DIR}/cpack_installer_generator.cmake)
include(CPack)
70 changes: 66 additions & 4 deletions build/cmake/fixup_bundle.cmake.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,70 @@
include(BundleUtilities)

set(INPEEM_APP_PATH ${CMAKE_INSTALL_PREFIX}/@PROJECT_NAME@.exe)
file(GLOB INPEEM_LIBS ${CMAKE_INSTALL_PREFIX}/*@CMAKE_SHARED_LIBRARY_SUFFIX@)
if(WIN32)
set(INPEEM_APP_PATH ${CMAKE_INSTALL_PREFIX}/@PROJECT_NAME@.exe)
file(GLOB INPEEM_LIBS ${CMAKE_INSTALL_PREFIX}/*@CMAKE_SHARED_LIBRARY_SUFFIX@)
set(INPEEM_PATHS ${CMAKE_INSTALL_PREFIX};@Qt5_DIR@/../../../bin)
elseif(APPLE)
set(BU_CHMOD_BUNDLE_ITEMS ON)
set(INPEEM_APP_PATH ${CMAKE_INSTALL_PREFIX}/@PROJECT_NAME@.app)
set(INPEEM_QT_PLUGINS_ABSOLUTE_LOCATION ${CMAKE_INSTALL_PREFIX}/@INPEEM_QT_PLUGINS_LOCATION@)
file(GLOB_RECURSE QT_PLUGINS "${INPEEM_QT_PLUGINS_ABSOLUTE_LOCATION}/*@CMAKE_SHARED_LIBRARY_SUFFIX@")
set(INPEEM_LIBS ${INPEEM_LIBS} ${QT_PLUGINS})
#message("${QT_PLUGINS}---------------------${INPEEM_QT_PLUGINS_ABSOLUTE_LOCATION}")
#exit()
set(INPEEM_PATHS ${CMAKE_INSTALL_PREFIX};@Qt5_DIR@/../..)
endif()

set(INPEEM_PATHS ${CMAKE_INSTALL_PREFIX})
if(APPLE)
# Overload function
function(gp_item_default_embedded_path item default_embedded_path_var)
set(is_System FALSE)
set(is_QImageFormat FALSE)
set(is_QIconEngine FALSE)
set(is_QSQLDrivers FALSE)
set(is_QPlatforms FALSE)
set(is_Lib FALSE)

fixup_bundle(${INPEEM_APP_PATH} "${INPEEM_LIBS}" "${INPEEM_PATHS}")
get_filename_component (resolved_file ${item} PATH)

if("${resolved_file}" STREQUAL "")
set (is_Lib TRUE)
elseif(resolved_file MATCHES "^(@rpath)")
set(is_Lib TRUE)
elseif(resolved_file MATCHES "^(/System/Library/|/usr/lib|/usr/local|@loader_path)")
set(is_System TRUE)
elseif(resolved_file MATCHES "(imageformats)$")
set (is_QImageFormat TRUE)
elseif(resolved_file MATCHES "(iconengines)$")
set (is_QIconEngine TRUE)
elseif(resolved_file MATCHES "(sqldrivers)$")
set (is_QSQLDrivers TRUE)
elseif(resolved_file MATCHES "(platforms)$")
set (is_QPlatforms TRUE)
elseif(resolved_file MATCHES "(lib)$")
set (is_Lib TRUE)
endif()

if(item MATCHES "\\.dylib$")
if(is_System)
set(${default_embedded_path_var} "@executable_path/../lib" PARENT_SCOPE)
elseif(is_QImageFormat)
set(${default_embedded_path_var} "@executable_path/../qtplugins/imageformats" PARENT_SCOPE)
elseif(is_QIconEngine)
set(${default_embedded_path_var} "@executable_path/../qtplugins/iconengines" PARENT_SCOPE)
elseif(is_QSQLDrivers)
set(${default_embedded_path_var} "@executable_path/../qtplugins/sqldrivers" PARENT_SCOPE)
elseif(is_QPlatforms)
set(${default_embedded_path_var} "@executable_path/../qtplugins/platforms" PARENT_SCOPE)
elseif(is_Lib)
set(${default_embedded_path_var} "@executable_path/../lib" PARENT_SCOPE)
else()
set(${default_embedded_path_var} "${resolved_file}" PARENT_SCOPE)
endif()
elseif(item MATCHES "[^/]+\\.framework/")
set(${default_embedded_path_var} "@executable_path/../Frameworks" PARENT_SCOPE)
endif()
endfunction()
endif()

fixup_bundle(${INPEEM_APP_PATH} "${INPEEM_LIBS}" "${INPEEM_PATHS}")
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
set(CMAKE_BUILD_TYPE "$ENV{_INPEEM_BUILD_TYPE}" CACHE PATH "Build Type" FORCE)
set(CMAKE_INSTALL_PREFIX "$ENV{_INPEEM_INSTALL_DIR}" CACHE PATH "Where will be INPE-EM installed?" FORCE)
set(CMAKE_INSTALL_PREFIX "$ENV{_INPEEM_INSTALL_DIR}" CACHE PATH "INPE-EM install path" FORCE)
set(INPEEM_BUILD_AS_BUNDLE $ENV{_INPEEM_BUILD_AS_BUNDLE} CACHE BOOL "Generate a bundle application" FORCE)
set(INPEEM_CREATE_INSTALLER $ENV{_IMPEEM_CREATE_INSTALLER} CACHE BOOL "Create the installer" FORCE)
set(INPEEM_TERRAME_DIR $ENV{_INPEEM_TERRAME_DIR} CACHE BOOL "TerraME directory" FORCE)
set(INPEEM_TERRAME_DIR $ENV{_INPEEM_TERRAME_DIR} CACHE BOOL "TerraME directory" FORCE)
set(Qt5_DIR "$ENV{_QT5_DIR}" CACHE PATH "Qt5" FORCE)
set(CMAKE_PREFIX_PATH "${Qt5_DIR}" CACHE PATH "Dependencies of INPE-EM" FORCE)
82 changes: 82 additions & 0 deletions build/cmake/inpeem_macros.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
MACRO(install_plugins plugins location)
set(_files)

foreach(plugin ${plugins})
get_target_property(_loc ${plugin} LOCATION)
list(APPEND _files ${_loc})
endforeach()

install(FILES ${_files}
DESTINATION "${location}"
CONFIGURATIONS Release
COMPONENT runtime)
ENDMACRO(install_plugins)

MACRO(install_qt5_plugins location)
find_package(Qt5 COMPONENTS Sql Svg PrintSupport)

# Installing image plugins
set(_plugins Qt5::QGifPlugin Qt5::QICOPlugin Qt5::QJpegPlugin Qt5::QSvgPlugin Qt5::QTiffPlugin)
install_plugins("${_plugins}" "${location}/imageformats")

# Installing svg plugins
set(_plugins Qt5::QSvgPlugin Qt5::QSvgIconPlugin)
install_plugins("${_plugins}" "${location}/iconengines")

# Installing sql plugins
set(_plugins Qt5::QSQLiteDriverPlugin)
install_plugins("${_plugins}" "${location}/sqldrivers")

# Installing printer support plugin
if(WIN32)
set(_plugins Qt5::QWindowsPrinterSupportPlugin)
install_plugins("${_plugins}" "${location}/printsupport")
endif()

# Installing platform plugins
if(WIN32)
set(_plugins Qt5::QWindowsIntegrationPlugin Qt5::QMinimalIntegrationPlugin)
install_plugins("${_plugins}" "platforms")
elseif(APPLE)
set(_plugins Qt5::QCocoaIntegrationPlugin Qt5::QMinimalIntegrationPlugin)
install_plugins("${_plugins}" "${location}/platforms")
endif()
ENDMACRO(install_qt5_plugins)

#
# Macro installQtPlugins
#
# Description: Installs the required Qt plugins.
#
# param plugs List of the names of plugins to be installed.
#
MACRO(install_qt_plugins plgs destination)
if("${QT_PLUGINS_DIR}" STREQUAL "")
set (QT_PLUGINS_DIR "${Qt5_DIR}/../../../plugins")
endif()

set(_regex_exp "")

set(_first TRUE)

foreach(plg ${plgs})
if(NOT _first)
set (_regex_exp ${_regex_exp}|${plg})
else()
set(_regex_exp ${plg})
set(_first FALSE)
endif()
endforeach()

set(_regex_exp "(${_regex_exp})?(${CMAKE_SHARED_LIBRARY_SUFFIX})$")

set(_dest "${destination}")

set(_plugin_dirs "imageformats;iconengines;sqldrivers;platforms")

foreach(_plugin_dir ${_plugin_dirs})
install(DIRECTORY ${QT_PLUGINS_DIR}/${_plugin_dir}
DESTINATION ${_dest} COMPONENT runtime
FILES_MATCHING REGEX "${_regex_exp}")
endforeach()
ENDMACRO(install_qt_plugins)
3 changes: 3 additions & 0 deletions build/cmake/qt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 3.12.2)

add_subdirectory(modelmanager)
204 changes: 204 additions & 0 deletions build/cmake/qt/modelmanager/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
cmake_minimum_required(VERSION 3.12.2)

set(INPEEM_SRC_DIR ${INPEEM_ROOT_DIR}/src/qt/modelmanager)

file(GLOB INPEEM_SRC_CPP_FILES ${INPEEM_SRC_DIR}/*.cpp)
file(GLOB INPEEM_SRC_H_FILES ${INPEEM_SRC_DIR}/*.h)
file(GLOB INPEEM_SRC_UI_FILES ${INPEEM_SRC_DIR}/ui/*.ui)
file(GLOB INPEEM_SRC_TS_FILES ${INPEEM_SRC_DIR}/ts/*.ts)
file(GLOB INPEEM_SRC_QRC_FILE ${INPEEM_SRC_DIR}/rc/resources.qrc)
file(GLOB INPEEM_SRC_QM_QRC_FILE ${INPEEM_SRC_DIR}/rc/qm/qm.qrc)
file(GLOB INPEEM_APP_ICON ${INPEEM_RESOURCES_DIR}/icon.ico)
file(GLOB INPEEM_APP_ICON_RC ${INPEEM_RESOURCES_DIR}/icon.rc)
#file(GLOB INPEEM_APP_IMAGE ${INPEEM_RESOURCES_DIR}/inpeem.png)
file(GLOB INPEEM_RESOURCE_FILES ${INPEEM_APP_ICON} ${INPEEM_APP_ICON_RC})
file(GLOB INPEEM_QT_RESOURCE_FILES ${INPEEM_SRC_QRC_FILE} ${INPEEM_SRC_QM_QRC_FILE})
source_group("Source Files" FILES ${INPEEM_SRC_CPP_FILES})
source_group("Header Files" FILES ${INPEEM_SRC_H_FILES})
source_group("Resource Files" FILES ${INPEEM_RESOURCE_FILES} ${INPEEM_QT_RESOURCE_FILES})
source_group("UI Files" FILES ${INPEEM_SRC_UI_FILES})
source_group("TS Files" FILES ${INPEEM_SRC_TS_FILES})

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5 COMPONENTS Widgets LinguistTools REQUIRED)
qt5_wrap_ui(INPEEM_GEN_UI_FILES ${INPEEM_SRC_UI_FILES})

qt5_add_translation(INPEEM_QM_FILES ${INPEEM_SRC_TS_FILES})
add_custom_target(translations DEPENDS ${INPEEM_QM_FILES})
get_target_property(QT5_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
execute_process(COMMAND ${QT5_QMAKE_EXECUTABLE} -query QT_INSTALL_TRANSLATIONS
OUTPUT_VARIABLE qt_translations_dir OUTPUT_STRIP_TRAILING_WHITESPACE)
file(TO_CMAKE_PATH "${qt_translations_dir}" qt_translations_dir)
set(QT_TRANSLATIONS_DIR ${qt_translations_dir} CACHE PATH "The location of the Qt translations" FORCE)

file(COPY ${INPEEM_SRC_QM_QRC_FILE} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

qt5_add_resources(INPEEM_QRC_FILES ${INPEEM_SRC_QRC_FILE} ${CMAKE_CURRENT_BINARY_DIR}/qm.qrc)

set(INPEEM_LIBRARIES ${INPEEM_LIBRARIES} Qt5::Widgets)

if(APPLE)
find_library(_COREFOUNDATION_LIBRARY NAMES CoreFoundation PATHS "/")

if(INPEEM_BUILD_AS_BUNDLE)
file(GLOB INPEEM_MACOSX_BUNDLE_ICON ${INPEEM_RESOURCES_DIR}/icon.icns)
set(INPEEM_RESOURCE_FILES ${INPEEM_RESOURCE_FILES} ${INPEEM_MACOSX_BUNDLE_ICON})
set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2020")
set(MACOSX_BUNDLE_SIGNATURE ${PROJECT_NAME})
set(MACOSX_BUNDLE_GUI_IDENTIFIER "http://inpe-em.ccst.inpe.br")
set(MACOSX_BUNDLE_EXECUTABLE_NAME ${PROJECT_NAME})
set(MACOSX_BUNDLE_INFO_STRING "INPE – Emission Model")
set(MACOSX_BUNDLE_ICON_FILE icon.icns)
set(MACOSX_BUNDLE_LONG_VERSION_STRING ${INPEEM_VERSION})
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${INPEEM_VERSION_MAJOR})
set(MACOSX_BUNDLE_BUNDLE_VERSION ${INPEEM_VERSION})

#set(APP_ICON_MACOSX ${INPEEM_MACOSX_BUNDLE_ICON})
set_source_files_properties(${INPEEM_MACOSX_BUNDLE_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")

configure_file(${CMAKE_ROOT}/Modules/MacOSXBundleInfo.plist.in ${CMAKE_BINARY_DIR}/Info.plist)

set(CPACK_PACKAGE_ICON ${INPEEM_MACOSX_BUNDLE_ICON})
set(CPACK_BUNDLE_NAME ${PROJECT_NAME})
set(CPACK_BUNDLE_ICON ${CPACK_PACKAGE_ICON})
set(CPACK_BUNDLE_PLIST ${CMAKE_BINARY_DIR}/Info.plist)

set(INPEEM_APP_TYPE MACOSX_BUNDLE)
endif()
else()
endif()

include_directories(${INPEEM_SRC_DIR}
#${INPEEM_RESOURCES_DIR}
${Qt5Network_INCLUDE_DIRS}
${Qt5Core_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS})

set(INPEEM_FILES ${INPEEM_SRC_CPP_FILES} ${INPEEM_SRC_H_FILES}
${INPEEM_GEN_UI_FILES}
${INPEEM_RESOURCE_FILES}
${INPEEM_QRC_FILES})

add_executable(${PROJECT_NAME} ${INPEEM_APP_TYPE} ${INPEEM_FILES})
target_link_libraries(${PROJECT_NAME} ${INPEEM_LIBRARIES})
#target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets)

if(WIN32 AND MSVC)
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
set_target_properties(${PROJECT_NAME} PROPERTIES MINSIZEREL "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
endif()

set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME runtime)

install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION . COMPONENT runtime
LIBRARY DESTINATION . COMPONENT runtime
ARCHIVE DESTINATION . COMPONENT runtime
BUNDLE DESTINATION . COMPONENT runtime)

if(APPLE AND INPEEM_BUILD_AS_BUNDLE)
set(INPEEM_BASE_LOCATION ${MACOSX_BUNDLE_BUNDLE_NAME}.app/Contents)
set(INPEEM_RUNTIME_LOCATION ${INPEEM_BASE_LOCATION}/MacOS)
set(INPEEM_LIBRARY_LOCATION ${INPEEM_BASE_LOCATION}/lib)
set(INPEEM_RESOURCE_LOCATION ${INPEEM_BASE_LOCATION}/Resources)
set(INPEEM_TERRAME_PACKAGES_DIR ${INPEEM_BASE_LOCATION}/terrame/terrame.app/Contents/MacOS/packages)
set(INPEEM_QT_PLUGINS_LOCATION ${INPEEM_BASE_LOCATION}/qtplugins)
install_qt5_plugins(${INPEEM_QT_PLUGINS_LOCATION})
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qt.conf
"[Paths]\nBinaries = MacOS\nPlugins = qtplugins")

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qt.conf
DESTINATION ${INPEEM_RESOURCE_LOCATION}
COMPONENT runtime)
else()
set(INPEEM_BASE_LOCATION .)
set(INPEEM_RUNTIME_LOCATION ${INPEEM_BASE_LOCATION})
set(INPEEM_LIBRARY_LOCATION ${INPEEM_BASE_LOCATION})
set(INPEEM_RESOURCE_LOCATION ${INPEEM_BASE_LOCATION})
set(INPEEM_TERRAME_PACKAGES_DIR ${INPEEM_BASE_LOCATION}/terrame/bin/packages)
endif()

install(FILES ${INPEEM_APP_ICON}
DESTINATION ${INPEEM_RESOURCE_LOCATION}
COMPONENT runtime)

set(INPEEM_DOC_DIR ${INPEEM_ROOT_DIR}/doc)
file(GLOB INPEEM_DOC_FILES ${INPEEM_DOC_DIR}/*.chm)
install(FILES ${INPEEM_DOC_FILES}
DESTINATION ${INPEEM_RESOURCE_LOCATION}
COMPONENT runtime)

install(FILES ${INPEEM_QM_FILES}
DESTINATION ${INPEEM_RESOURCE_LOCATION}/langs
COMPONENT runtime)

install(DIRECTORY ${INPEEM_TERRAME_DIR}
DESTINATION ${INPEEM_BASE_LOCATION}
COMPONENT runtime)

set(INPEEM_LUA_DIR ${INPEEM_ROOT_DIR}/src/terrame/)
set(INPEEM_PACKAGE_DIR ${INPEEM_TERRAME_PACKAGES_DIR}/inpeem)
install(DIRECTORY ${INPEEM_LUA_DIR}
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

# install(FILES ${INPEEM_RESOURCES_DIR}/inpeem.bat
# DESTINATION terrame/bin
# COMPONENT runtime)

set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
include(InstallRequiredSystemLibraries)

if(INPEEM_BUILD_AS_BUNDLE)
configure_file(${PROJECT_SOURCE_DIR}/fixup_bundle.cmake.in
${CMAKE_BINARY_DIR}/fixup_bundle.cmake @ONLY)
install(SCRIPT ${CMAKE_BINARY_DIR}/fixup_bundle.cmake COMPONENT runtime)
endif()

configure_file(${PROJECT_SOURCE_DIR}/terrame_package_description.cmake.in
${CMAKE_BINARY_DIR}/description.lua @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/description.lua
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

get_filename_component(INPEEM_AMAZON_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_epsg29101.zip ABSOLUTE)
get_filename_component(INPEEM_AMAZON_REGROW_RATES_DATA ${INPEEM_ROOT_DIR}/data/amzCs5km_netemissions_epsg5880.zip ABSOLUTE)
set(INPEEM_DATA_DIR ${CMAKE_BINARY_DIR}/data)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${INPEEM_DATA_DIR})
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_REGROW_RATES_DATA}
WORKING_DIRECTORY ${INPEEM_DATA_DIR}
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzvf ${INPEEM_AMAZON_DATA}
WORKING_DIRECTORY ${INPEEM_DATA_DIR}
)
install(DIRECTORY ${INPEEM_DATA_DIR}
DESTINATION ${INPEEM_PACKAGE_DIR}
COMPONENT runtime)

if(WIN32)
install(FILES ${Qt5_DIR}/../../../plugins/platforms/qwindowsd.dll
DESTINATION ./platforms
COMPONENT runtime
CONFIGURATIONS Debug)

install(FILES ${Qt5_DIR}/../../../plugins/platforms/qwindows.dll
DESTINATION ./platforms
COMPONENT runtime
CONFIGURATIONS Release)
endif()

configure_file(${PROJECT_SOURCE_DIR}/inpeem_version.h.in
${INPEEM_SRC_DIR}/Version.h @ONLY)

# configure_file(${PROJECT_SOURCE_DIR}/cpack_installer_generator.cmake.in
# ${CMAKE_BINARY_DIR}/cpack_installer_generator.cmake @ONLY)
# set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_BINARY_DIR}/cpack_installer_generator.cmake)
# include(CPack)
55 changes: 55 additions & 0 deletions build/scripts/linux/inpeem_conf.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash

if [ "$_INPEEM_BUILD_DIR" == "" ]; then
_INPEEM_BUILD_DIR=$(pwd)/build
fi
export _INPEEM_BUILD_DIR=$_INPEEM_BUILD_DIR

if [ "$_INPEEM_INSTALL_DIR" == "" ]; then
_INPEEM_INSTALL_DIR=$(pwd)/install
fi
export _INPEEM_INSTALL_DIR=$_INPEEM_INSTALL_DIR

if [ "$_INPEEM_BUILD_TYPE" == "" ]; then
_INPEEM_BUILD_TYPE=Release
fi
export _INPEEM_BUILD_TYPE=$_INPEEM_BUILD_TYPE

if [ "$_INPEEM_BUILD_AS_BUNDLE" == "" ]; then
_INPEEM_BUILD_AS_BUNDLE=OFF
fi
export _INPEEM_BUILD_AS_BUNDLE=$_INPEEM_BUILD_AS_BUNDLE

if [ "$_INPEEM_CREATE_INSTALLER" == "" ]; then
_INPEEM_CREATE_INSTALLER=ON
fi
export _INPEEM_CREATE_INSTALLER=$_INPEEM_CREATE_INSTALLER

if [ "$_INPEEM_TERRAME_DIR" == "" ]; then
_INPEEM_TERRAME_DIR=/home/developer/inpeem/3rdparty/terrame
fi
export _INPEEM_TERRAME_DIR=$_INPEEM_TERRAME_DIR

if [ "$_Qt5_DIR" == "" ]; then
_Qt5_DIR=/usr/lib/x86_64-linux-gnu/cmake/Qt5
fi
export _Qt5_DIR=$_Qt5_DIR

export _INPEEM_SOLUTION_DIR=$(pwd)

mkdir $_INPEEM_BUILD_DIR
cd $_INPEEM_BUILD_DIR

if [ "$_INPEEM_GIT_DIR" == "" ]; then
_INPEEM_GIT_DIR=../../git/inpeem
fi
export _INPEEM_GIT_DIR=$_INPEEM_GIT_DIR

cmake -G "Unix Makefiles" -C $_INPEEM_GIT_DIR/build/cmake/inpeem_build_conf.cmake $_INPEEM_GIT_DIR/build/cmake
cmake --build . --target install --config $_TERRAME_BUILD_TYPE

if [ "$_INPEEM_CREATE_INSTALLER" == "ON" ]; then
cpack -D CPACK_GENERATOR="TGZ" -C Release --config ./CPackConfig.cmake
fi

cd $_INPEEM_SOLUTION_DIR
63 changes: 63 additions & 0 deletions build/scripts/mac/inpeem_conf.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/bin/bash

if [ "$_INPEEM_BUILD_DIR" == "" ]; then
_INPEEM_BUILD_DIR=$(pwd)/build
fi
export _INPEEM_BUILD_DIR=$_INPEEM_BUILD_DIR

if [ "$_INPEEM_INSTALL_DIR" == "" ]; then
_INPEEM_INSTALL_DIR=$(pwd)/install
fi
export _INPEEM_INSTALL_DIR=$_INPEEM_INSTALL_DIR

if [ "$_INPEEM_BUILD_TYPE" == "" ]; then
_INPEEM_BUILD_TYPE=Release
fi
export _INPEEM_BUILD_TYPE=$_INPEEM_BUILD_TYPE

if [ "$_INPEEM_BUILD_AS_BUNDLE" == "" ]; then
_INPEEM_BUILD_AS_BUNDLE=ON
fi
export _INPEEM_BUILD_AS_BUNDLE=$_INPEEM_BUILD_AS_BUNDLE

if [ "$_INPEEM_CREATE_INSTALLER" == "" ]; then
_INPEEM_CREATE_INSTALLER=OFF
fi
export _INPEEM_CREATE_INSTALLER=$_INPEEM_CREATE_INSTALLER

if [ "$_INPEEM_TERRAME_DIR" == "" ]; then
_INPEEM_TERRAME_DIR=/Users/developer/inpeem/3rdparty/terrame
fi
export _INPEEM_TERRAME_DIR=$_INPEEM_TERRAME_DIR

if [ "$_Qt5_DIR" == "" ]; then
_Qt5_DIR=/Users/developer/Qt5.6.0/5.6/clang_64/lib/cmake
fi
export _Qt5_DIR=$_Qt5_DIR

if ! command -v qmake &> /dev/null; then
export PATH=$PATH:/Users/developer/Qt5.6.0/5.6/clang_64/bin
fi

if ! command -v cmake &> /dev/null; then
export PATH=$PATH:export PATH=$PATH:/Applications/CMake.app/Contents/bin
fi

export _INPEEM_SOLUTION_DIR=$(pwd)

mkdir $_INPEEM_BUILD_DIR
cd $_INPEEM_BUILD_DIR

if [ "$_INPEEM_GIT_DIR" == "" ]; then
_INPEEM_GIT_DIR=../../git/inpeem
fi
export _INPEEM_GIT_DIR=$_INPEEM_GIT_DIR

cmake -G "Xcode" -C $_INPEEM_GIT_DIR/build/cmake/inpeem_build_conf.cmake $_INPEEM_GIT_DIR/build/cmake
cmake --build . --target install --config $_INPEEM_BUILD_TYPE

if [ "$_INPEEM_CREATE_INSTALLER" == "ON" ]; then
cpack -D CPACK_GENERATOR="DragNDrop" -C Release --config ./CPackConfig.cmake
fi

cd $_INPEEM_SOLUTION_DIR
Original file line number Diff line number Diff line change
@@ -1,39 +1,41 @@
if "%_INPEEM_GIT_DIR%" == "" (
set _INPEEM_GIT_DIR=..\..\git\inpeem
)

if "%_INPEEM_BUILD_DIR%" == "" (
set _INPEEM_BUILD_DIR=%CD%\build
)

if "%_INPEEM_INSTALL_DIR%" == "" (
set _INPEEM_INSTALL_DIR=%CD%\install
set _INPEEM_INSTALL_DIR=%CD%\install
)

if "%_INPEEM_BUILD_TYPE%" == "" (
set _INPEEM_BUILD_TYPE=Release
set _INPEEM_BUILD_TYPE=Release
)

if "%_INPEEM_BUILD_AS_BUNDLE%" == "" (
set _INPEEM_BUILD_AS_BUNDLE=ON
set _INPEEM_BUILD_AS_BUNDLE=ON
)

if "%_INPEEM_CREATE_INSTALLER%" == "" (
set _INPEEM_CREATE_INSTALLER=ON
set _INPEEM_CREATE_INSTALLER=ON
)

if "%_INPEEM_TERRAME_DIR%" == "" (
set _INPEEM_TERRAME_DIR=D:/inpe-em/3rdparty/TerraME
set _INPEEM_TERRAME_DIR=D:/inpe-em/3rdparty/terrame
)

if "%_Qt5_DIR%" == "" (
set _Qt5_DIR=C:\Qt\5.10.1\msvc2017_64
)

set _INPEEM_SOLUTION_DIR=%CD%

mkdir %_INPEEM_BUILD_DIR%
cd %_INPEEM_BUILD_DIR%

xcopy /Y %_INPEEM_GIT_DIR%\build\scripts\win\inpeem-conf.cmake %_INPEEM_BUILD_DIR%
if "%_INPEEM_GIT_DIR%" == "" (
set _INPEEM_GIT_DIR=..\..\git\inpeem
)

cmake -G "Visual Studio 15 2017 Win64" -C inpeem-conf.cmake %_INPEEM_GIT_DIR%\build\cmake
cmake -G "Visual Studio 15 2017 Win64" -C %_INPEEM_GIT_DIR%\build\cmake\inpeem_build_conf.cmake %_INPEEM_GIT_DIR%\build\cmake
cmake --build . --target INSTALL --config %_INPEEM_BUILD_TYPE%

if "%_INPEEM_CREATE_INSTALLER%" == "ON" (
Binary file added resources/icon.icns
Binary file not shown.
1 change: 1 addition & 0 deletions resources/icon.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
INPEEM_ICON ICON DISCARDABLE "icon.ico"
Binary file added resources/inpeem.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 25 additions & 0 deletions src/qt/modelmanager/CentralWidget.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#include "CentralWidget.h"
#include "ui_CentralWidget.h"

#include "ModelDefinitionsWidget.h"

qt::modelmanager::CentralWidget::CentralWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::CentralWidget)
{
ui->setupUi(this);

QPixmap img(":/img/inpeem.png");
ui->label->setPixmap(img.scaled(QSize(250, 250), Qt::KeepAspectRatio, Qt::SmoothTransformation));

QTabWidget *tabWidget = new QTabWidget(this);
qt::modelmanager::ModelDefinitionsWidget *modelDefsTab = new
qt::modelmanager::ModelDefinitionsWidget(this);
tabWidget->addTab(modelDefsTab, tr("Model Definitions"));
ui->verticalLayout_2->layout()->addWidget(tabWidget);
}

qt::modelmanager::CentralWidget::~CentralWidget()
{
delete ui;
}
28 changes: 28 additions & 0 deletions src/qt/modelmanager/CentralWidget.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#ifndef CENTRALWIDGET_H
#define CENTRALWIDGET_H

#include <QWidget>

namespace Ui {
class CentralWidget;
}

namespace qt
{
namespace modelmanager
{
class CentralWidget : public QWidget
{
Q_OBJECT

public:
explicit CentralWidget(QWidget *parent = nullptr);
~CentralWidget();

private:
Ui::CentralWidget *ui;
};
}
}

#endif // CENTRALWIDGET_H
34 changes: 34 additions & 0 deletions src/qt/modelmanager/MainWindow.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#include "MainWindow.h"
#include "ui_MainWindow.h"

//#include <QLayout>
#include <QTabWidget>

//#include "ModelDefinitionsWidget.h"
//#include "Tab.h"
#include "CentralWidget.h"

qt::modelmanager::MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QIcon appIcon("icon.ico");
this->setWindowIcon(appIcon);

// remove the old translator
qApp->removeTranslator(&translator);
// load the new translator
QString path = QApplication::applicationDirPath();
// path.append("/langs/");
if (translator.load(":/modelmanager_pt_br.qm"))
qApp->installTranslator(&translator);

this->setCentralWidget(new CentralWidget(this));
}

qt::modelmanager::MainWindow::~MainWindow()
{
delete ui;
}
30 changes: 30 additions & 0 deletions src/qt/modelmanager/MainWindow.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTranslator>

namespace Ui {
class MainWindow;
}

namespace qt
{
namespace modelmanager
{
class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();

private:
Ui::MainWindow *ui;
QTranslator translator;
};
}
}

#endif // MAINWINDOW_H
25 changes: 25 additions & 0 deletions src/qt/modelmanager/ModelDefinitionsWidget.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#include "ModelDefinitionsWidget.h"
#include "ui_ModelDefinitionsWidget.h"

#include <QFileDialog>

qt::modelmanager::ModelDefinitionsWidget::ModelDefinitionsWidget(QWidget *parent) :
QWidget(parent), ui(new Ui::ModelDefinitionsWidget)
{
ui->setupUi(this);
ui->pushButton->setAutoDefault(false);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(selectDir()));
}

qt::modelmanager::ModelDefinitionsWidget::~ModelDefinitionsWidget()
{
delete ui;
}

void qt::modelmanager::ModelDefinitionsWidget::selectDir()
{
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
ui->label_2->setText(dir);
}
31 changes: 31 additions & 0 deletions src/qt/modelmanager/ModelDefinitionsWidget.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#ifndef MODELDEFINITIONSWIDGET_H
#define MODELDEFINITIONSWIDGET_H

#include <QWidget>

namespace Ui {
class ModelDefinitionsWidget;
}

namespace qt
{
namespace modelmanager
{
class ModelDefinitionsWidget : public QWidget
{
Q_OBJECT

public:
explicit ModelDefinitionsWidget(QWidget *parent = nullptr);
virtual ~ModelDefinitionsWidget();

private slots:
void selectDir();

private:
Ui::ModelDefinitionsWidget *ui;
};
}
}

#endif MODELDEFINITIONSWIDGET_H
11 changes: 11 additions & 0 deletions src/qt/modelmanager/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include "MainWindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qt::modelmanager::MainWindow w;
w.show();

return a.exec();
}
Binary file added src/qt/modelmanager/rc/img/inpeem.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions src/qt/modelmanager/rc/qm/qm.qrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<!-- qm files are generated by cmake building -->
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/">
<file>modelmanager_pt_br.qm</file>
</qresource>
</RCC>
5 changes: 5 additions & 0 deletions src/qt/modelmanager/rc/resources.qrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/">
<file>img/inpeem.png</file>
</qresource>
</RCC>
12 changes: 12 additions & 0 deletions src/qt/modelmanager/ts/modelmanager_pt_br.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="pt_BR">
<context>
<name>ModelDefinitionsWidget</name>
<message>
<!-- <location filename="../../../src/terralib/ceditor/ui/CodeEditorDialogForm.ui" line="17"/> -->
<source>Folder to save the model</source>
<translation>Pasta para salvar o modelo</translation>
</message>
</context>
</TS>
38 changes: 38 additions & 0 deletions src/qt/modelmanager/ui/CentralWidget.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CentralWidget</class>
<widget class="QWidget" name="CentralWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>588</width>
<height>608</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;inpeem.png&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
71 changes: 71 additions & 0 deletions src/qt/modelmanager/ui/MainWindow.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>500</height>
</rect>
</property>
<property name="windowTitle">
<string>Model Manager</string>
</property>
<widget class="QWidget" name="centralWidget"/>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuNew">
<property name="title">
<string>File</string>
</property>
<addaction name="actionOpen"/>
<addaction name="actionOpen_2"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
<addaction name="menuNew"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionOpen">
<property name="text">
<string>New</string>
</property>
<property name="shortcut">
<string>Ctrl+N</string>
</property>
</action>
<action name="actionOpen_2">
<property name="text">
<string>Open</string>
</property>
<property name="shortcut">
<string>Ctrl+O</string>
</property>
</action>
<action name="actionExit">
<property name="text">
<string>Exit</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
113 changes: 113 additions & 0 deletions src/qt/modelmanager/ui/ModelDefinitionsWidget.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ModelDefinitionsWidget</class>
<widget class="QWidget" name="ModelDefinitionsWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>549</width>
<height>347</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QFormLayout" name="formLayout">
<property name="labelAlignment">
<set>Qt::AlignCenter</set>
</property>
<item row="0" column="0">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="modelNameLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Model name</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="modelNameLineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="placeholderText">
<string>INPEEM</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Folder to save the model</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Select</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>