Skip to content

Commit

Permalink
cmake cleaned -> no qt/nomacs dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
diemmarkus committed Apr 30, 2015
1 parent 57956f2 commit 2e00e3f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 110 deletions.
117 changes: 7 additions & 110 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ if(COMMAND cmake_policy)
endif(COMMAND cmake_policy)


set(DKNOMACS_VERSION 0.0.l)
add_definitions(-DDKNOMACS_VERSION="${NOMACS_VERSION}")
set(VIENNAMS_VERSION 0.0.l)
add_definitions(-DVIENNAMS_VERSION="${VIENNAMS_VERSION}")

# load paths from the user file if exists
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeUser.cmake)
Expand All @@ -29,7 +29,6 @@ if (CMAKE_BUILD_TYPE STREQUAL "debug" OR CMAKE_BUILD_TYPE STREQUAL "Debug" OR CM
add_definitions(-DDEBUG)
elseif (NOT MSVC) # debug and release need qt debug outputs on windows
message(STATUS "A release build (non-debug). Debugging outputs are silently ignored.")
add_definitions(-DQT_NO_DEBUG_OUTPUT)
endif ()


Expand All @@ -43,15 +42,6 @@ IF(MSVC)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
ENDIF(MSVC)

#set(BUILD_EXAMPLES OFF CACHE BOOL "Build all examples")

# find the Qt
set(QT_MIN_VERSION "4.7.0")
set(QT_USE_GUI 1)
set(QT_USE_QTNETWORK 1)
find_package(Qt4 REQUIRED QtCore QtGui QtNetwork)
include(${QT_USE_FILE})

find_package(PkgConfig)


Expand All @@ -76,31 +66,14 @@ ELSE()
add_definitions(-DWITH_OPENCV -DHAVE_EXIV2_HPP)
ENDIF()

#find nomacs
# SET(NOMACS_BUILD_DIRECTORY "NOT_SET" CACHE PATH "Path to the nomacs build directory")
IF (${NOMACS_BUILD_DIRECTORY} STREQUAL "NOT_SET")
MESSAGE(FATAL_ERROR "You have to set the nomacs build directory")
ENDIF()


include_directories (
${OpenCV_INCLUDE_DIRS}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/DkViennaMS
${CMAKE_CURRENT_SOURCE_DIR}/DkNomacs
${CMAKE_CURRENT_SOURCE_DIR}/DkModule
${CMAKE_CURRENT_SOURCE_DIR}/DkCore
${CMAKE_SOURCE_DIR}/DkNomacs/extern2012
${NOMACS_BUILD_DIRECTORY}/../ImageLounge/src
${NOMACS_BUILD_DIRECTORY}/../exiv2-0.24/msvc2012-nomacs/include
${NOMACS_BUILD_DIRECTORY}/../LibRaw-0.16.0/
)

file(GLOB DKNOMACS_SOURCES "DkNomacs/*.cpp")
file(GLOB DKNOMACS_HEADERS "DkNomcas/*.h")
file(GLOB DKNOMACS_MOCS "DkNomacs/*.h")
file(GLOB DKNOMACS_CONFIGS "DkNomacs/*.conf")

file(GLOB DKVIENNAMS_SOURCES "DkViennaMS/*.cpp")
file(GLOB DKVIENNAMSS_HEADERS "DkViennaMS/*.h")

Expand All @@ -111,50 +84,20 @@ file(GLOB DKCORE_HEADERS "DkCore/*.h")
file(GLOB DKMODULE_SOURCES "DkModule/*.cpp")
file(GLOB DKMODULE_HEADERS "DkModule/*.h")


# set (DKNOMACS_FORMS
# src/nomacs.ui
# )

set (DKNOMACS_RESOURCES
DkNomacs/dknomacs.qrc
)

# set(DKNOMACS_TRANSLATIONS
# translations/nomacs_als.ts
# }


# QT4_ADD_TRANSLATION(DKNOMACS_QM ${DKNOMACS_TRANSLATIONS})
# QT4_WRAP_UI(DKNOMACS_UI ${DKNOMACS_FORMS})
QT4_WRAP_CPP(DKNOMACS_MOC_SRC ${DKNOMACS_MOCS})
QT4_ADD_RESOURCES(DKNOMACS_RCC ${DKNOMACS_RESOURCES})

if (MSVC) # some settings for visual studio
SET(DKNOMACS_RC DkNomacs/DkNomacs.rc) #add resource file when compiling with MSVC
else(MSVC)
SET(DKNOMACS_RC "")
ENDIF(MSVC)

set(DKCOREDLL_NAME libDkCore)
set(DKCOPRELIB_NAME optimized ${DKCOREDLL_NAME}.lib debug ${DKCOREDLL_NAME}d.lib)

set(DKMODULEDLL_NAME libDkModule)
set(DKMODULELIB_NAME optimized ${DKMODULEDLL_NAME}.lib debug ${DKMODULEDLL_NAME}d.lib)

set(NOMACSDLL_NAME optimized libnomacs.lib debug libnomacsd.lib)

set(EXE_NAME_NOMACS ${CMAKE_PROJECT_NAME}-nomacs)
set(EXE_NAME ${CMAKE_PROJECT_NAME})
add_definitions(-DDK_DEBUG)
add_definitions(-DDK_DEBUG)
add_definitions(-DDK_SAVE_DEBUG)
link_directories(${LIBRAW_LIBRARY_DIRS} ${OpenCV_LIBRARY_DIRS} ${CMAKE_CURRENT_BINARY_DIR}/libs)
add_executable(${EXE_NAME_NOMACS} MACOSX_BUNDLE ${DKNOMACS_SOURCES} ${DKNOMACS_HEADERS} ${DKNOMACS_MOC_SRC} ${DKNOMACS_TRANSLATIONS} ${DKNOMACS_FORMS} ${DKNOMACS_MOCS} ${DKNOMACS_RESOURCES} ${DKNOMACS_CONFIGS} ${DKNOMACS_RC} ${DKNOMACS_RCC})
link_directories(${OpenCV_LIBRARY_DIRS} ${CMAKE_CURRENT_BINARY_DIR}/libs)

add_executable(${EXE_NAME} MACOSX_BUNDLE ${DKVIENNAMS_SOURCES} ${DKVIENNAMS_HEADERS})

target_link_libraries(${EXE_NAME} ${OpenCV_LIBS} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTMAIN_LIBRARY} ${DKCOREDLL_NAME} ${DKMODULEDLL_NAME} ${NOMACSDLL_NAME})
target_link_libraries(${EXE_NAME} ${OpenCV_LIBS} ${DKCOREDLL_NAME} ${DKMODULEDLL_NAME})

set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_REALLYRELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /LARGEADDRESSAWARE")
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:CONSOLE /LARGEADDRESSAWARE")
Expand Down Expand Up @@ -192,7 +135,7 @@ IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
SET_TARGET_PROPERTIES(${EXE_NAME} PROPERTIES LINK_FLAGS -fopenmp)
ENDIF()

IF (MSVC) # copy qt dlls and change settings for different projects
IF (MSVC) # copy opencv dlls and change settings for different projects


FOREACH(opencvlib ${OpenCV_REQUIRED_MODULES})
Expand All @@ -203,62 +146,16 @@ IF (MSVC) # copy qt dlls and change settings for different projects
FILE(GLOB dllpath ${OpenCV_DIR}/bin/Debug/opencv_${opencvlib}*d.dll)
FILE(COPY ${dllpath} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)
ENDFOREACH(opencvlib)

SET (QTLIBLIST QtCore QtGui QtNetwork)
FOREACH(qtlib ${QTLIBLIST})
GET_FILENAME_COMPONENT(QT_DLL_PATH_tmp ${QT_QMAKE_EXECUTABLE} PATH)
FILE(COPY ${QT_DLL_PATH_tmp}/${qtlib}4.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release)
FILE(COPY ${QT_DLL_PATH_tmp}/${qtlib}4.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
FILE(COPY ${QT_DLL_PATH_tmp}/${qtlib}d4.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)
ENDFOREACH(qtlib)

#copy nomacs files
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Release/libnomacs.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/ReallyRelease/libnomacs.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Debug/libnomacsd.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)

FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Release/libraw.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/ReallyRelease/libraw.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Debug/libraw.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)

FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Release/zlib1.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/ReallyRelease/zlib1.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Debug/zlib1d.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)

FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Release/libexpat.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/ReallyRelease/libexpat.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Debug/libexpat.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)

FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Release/exiv2.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/ReallyRelease/exiv2.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Debug/exiv2d.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)

FILE(COPY ${NOMACS_BUILD_DIRECTORY}/libs/libnomacsd.lib DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/libs)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/libs/libnomacs.lib DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/libs)

set (quazipFile "${NOMACS_BUILD_DIRECTORY}/Release/quazip.dll")

IF (EXISTS quazipFile)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Release/quazip.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/ReallyRelease/quazip.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ReallyRelease)
FILE(COPY ${NOMACS_BUILD_DIRECTORY}/Debug/quazipd.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug)
ENDIF()


SET(CMAKE_CONFIGURATION_TYPES "Debug;Release;ReallyRelease" CACHE STRING "limited configs" FORCE)
add_definitions(/Zc:wchar_t-)
SET(CMAKE_CXX_FLAGS_REALLYRELEASE "-W4 -O2 -DQT_NO_DEBUG_OUTPUT")
SET(CMAKE_CXX_FLAGS_REALLYRELEASE "-W4 -O2")
SET(CMAKE_EXE_LINKER_FLAGS_REALLYRELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /LARGEADDRESSAWARE") # /subsystem:windows does not work due to a bug in cmake (see http://public.kitware.com/Bug/view.php?id=12566)
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_REALLYRELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /LARGEADDRESSAWARE")
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:CONSOLE /LARGEADDRESSAWARE")
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SUBSYSTEM:CONSOLE /LARGEADDRESSAWARE")

SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/GeneratedFiles)
SOURCE_GROUP("Generated Files" FILES ${DKNOMACS_MOC_SRC} ${DKNOMACS_RCC} ${DKNOMACS_UI} ${DKNOMACS_RC} ${DKNOMACS_QM})
set_source_files_properties(${DKNOMACS_TRANSLATIONS} PROPERTIES HEADER_FILE_ONLY TRUE)
SOURCE_GROUP("Translations" FILES ${DKNOMACS_TRANSLATIONS})

#add config file
SOURCE_GROUP("Configs" FILES ${DKNOMACS_CONFIGS})
ENDIF()


Binary file modified DkNomacs/DkNomacs.rc
Binary file not shown.

0 comments on commit 2e00e3f

Please sign in to comment.