1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
cmake_minimum_required(VERSION 3.16)
PROJECT(PosteRazor)
IF (WIN32 OR APPLE)
SET(POSTERAZOR_ENABLEGLPREVIEW TRUE)
SET(POSTERAZOR_ENABLELAUNCHURLSORFILES TRUE)
ENDIF (WIN32 OR APPLE)
IF (MSVC)
SET(POSTERAZOR_WIN32STATICRUNTIMES TRUE)
SET(POSTERAZOR_DEFINITIONS
${POSTERAZOR_DEFINITIONS}
-D_CRT_SECURE_NO_WARNINGS
)
ENDIF (MSVC)
SET(POSTERAZOR_CORESOURCES
ImageIOTypes.cpp
PosteRazor.cpp
PosteRazorImageIO.cpp
PosteRazorPDFOutput.cpp
UnitsOfLength.cpp
PaperFormats.cpp
PaintCanvasBase.cpp
)
SET(POSTERAZOR_UISOURCES
Translations.cpp
FlPaintCanvasGroup.cpp
FlDrawPaintCanvas.cpp
FlPersistentPreferences.cpp
FlImageTextButton.cpp
FlPosteRazorSpinner.cpp
PosteRazorDialogController.cpp
PosteRazorWizardDialogController.cpp
FlPosteRazorDialog.cpp
FlPosteRazorHelpDialog.cpp
FlPosteRazorSettingsDialog.cpp
FlPosteRazorDialogUI.cpp
thirdparty/Fl_Native_File_Chooser/Fl_Native_File_Chooser.cxx
)
SET(POSTERAZOR_INCLUDEDIRECTORIES
thirdparty/Fl_Native_File_Chooser
)
IF (POSTERAZOR_ENABLEGLPREVIEW)
SET(POSTERAZOR_UISOURCES
${POSTERAZOR_UISOURCES}
FlGlPaintCanvas.cpp
)
ENDIF (POSTERAZOR_ENABLEGLPREVIEW)
SET(POSTERAZOR_SOURCES
${POSTERAZOR_CORESOURCES}
${POSTERAZOR_UISOURCES}
)
SET(POSTERAZOR_DEFINITIONS
${POSTERAZOR_DEFINITIONS}
-DFREEIMAGE_LIB
)
IF (NOT POSTERAZOR_ENABLEGLPREVIEW)
SET(POSTERAZOR_DEFINITIONS
${POSTERAZOR_DEFINITIONS}
-DNO_OPENGL_PREVIEW
)
ENDIF (NOT POSTERAZOR_ENABLEGLPREVIEW)
IF (NOT POSTERAZOR_ENABLELAUNCHURLSORFILES)
SET(POSTERAZOR_DEFINITIONS
${POSTERAZOR_DEFINITIONS}
-DNO_LAUNCH_URLS_OR_FILES
)
ENDIF (NOT POSTERAZOR_ENABLELAUNCHURLSORFILES)
IF (WIN32)
SET(POSTERAZOR_EXECUTABLE WIN32 ${POSTERAZOR_SOURCES} PosteRazorUI.rc)
SET(POSTERAZOR_INCLUDEDIRECTORIES ${POSTERAZOR_INCLUDEDIRECTORIES}
thirdparty/FreeImage/Dist
thirdparty/fltk-1.1
)
SET(POSTERAZOR_LINKDIRECTORIES
thirdparty/FreeImage/Dist
thirdparty/fltk-1.1/lib
)
SET(POSTERAZOR_LINKLIBRARIES
debug FreeImaged
optimized FreeImage
debug fltkd
optimized fltk
wsock32
comctl32
)
IF (POSTERAZOR_ENABLEGLPREVIEW)
SET(POSTERAZOR_LINKLIBRARIES
${POSTERAZOR_LINKLIBRARIES}
debug fltkgld
optimized fltkgl
glu32
opengl32
)
ENDIF (POSTERAZOR_ENABLEGLPREVIEW)
IF (POSTERAZOR_WIN32STATICRUNTIMES)
SET(POSTERAZOR_LINKLIBRARIES
${POSTERAZOR_LINKLIBRARIES}
debug libcmtd
optimized libcmt
)
SET(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /RTCs /MTd /Zi /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG")
SET(POSTERAZOR_TARGET_PROPERTIES PROPERTIES LINK_FLAGS_DEBUG "/DEBUG")
ELSE (POSTERAZOR_WIN32STATICRUNTIMES)
SET(POSTERAZOR_TARGET_PROPERTIES PROPERTIES
LINK_FLAGS_DEBUG "/nodefaultlib:LIBCMTD"
LINK_FLAGS_RELEASE "/nodefaultlib:LIBCMT"
)
ENDIF (POSTERAZOR_WIN32STATICRUNTIMES)
ENDIF (WIN32)
IF (APPLE)
SET(POSTERAZOR_EXECUTABLE MACOSX_BUNDLE ${POSTERAZOR_SOURCES})
SET(POSTERAZOR_LINKLIBRARIES
fltk
fltk_gl
freeimage
"-framework Carbon -framework AGL -framework ApplicationServices -framework OpenGL -lz"
)
ENDIF(APPLE)
IF (UNIX AND NOT APPLE)
SET(POSTERAZOR_EXECUTABLE ${POSTERAZOR_SOURCES})
SET(POSTERAZOR_LINKLIBRARIES
fltk
fltk_images
freeimage
X11
Xpm
# Xft
# Xinerama
)
IF (POSTERAZOR_ENABLEGLPREVIEW)
SET(POSTERAZOR_LINKLIBRARIES
${POSTERAZOR_LINKLIBRARIES}
fltk_gl
)
ENDIF (POSTERAZOR_ENABLEGLPREVIEW)
ENDIF (UNIX AND NOT APPLE)
LINK_DIRECTORIES(${POSTERAZOR_LINKDIRECTORIES})
ADD_EXECUTABLE(PosteRazor ${POSTERAZOR_EXECUTABLE})
IF (DEFINED POSTERAZOR_TARGET_PROPERTIES)
SET_TARGET_PROPERTIES(PosteRazor ${POSTERAZOR_TARGET_PROPERTIES})
ENDIF (DEFINED POSTERAZOR_TARGET_PROPERTIES)
ADD_DEFINITIONS(${POSTERAZOR_DEFINITIONS})
INCLUDE_DIRECTORIES(${POSTERAZOR_INCLUDEDIRECTORIES})
TARGET_LINK_LIBRARIES(PosteRazor ${POSTERAZOR_LINKLIBRARIES})
IF (APPLE)
GET_TARGET_PROPERTY(MACOSX_BUNDLE_LOCATION PosteRazor LOCATION)
SET(MACOSX_CONTENTS_PATH ${MACOSX_BUNDLE_LOCATION}.app/Contents)
SET(MACOSX_RESOURCES_PATH ${MACOSX_CONTENTS_PATH}/Resources)
ADD_CUSTOM_COMMAND(TARGET PosteRazor POST_BUILD
COMMAND mkdir ARGS -p ${MACOSX_RESOURCES_PATH}
COMMAND cp ARGS PosteRazor.icns ${MACOSX_RESOURCES_PATH}
COMMAND cp ARGS Info.plist ${MACOSX_CONTENTS_PATH}
COMMAND strip ARGS ${MACOSX_CONTENTS_PATH}/MacOS/PosteRazor
)
FOREACH(language English German French Italian Dutch Spanish BrazilianPortuguese)
ADD_CUSTOM_COMMAND(TARGET PosteRazor POST_BUILD
COMMAND mkdir ARGS -p ${MACOSX_RESOURCES_PATH}/${language}.lproj)
ENDFOREACH(language)
ENDIF(APPLE)
|