自分用メモ: Notes C APIアプリをマルチプラットフォーム開発するときのマクロ定義
- Windows 32ビット版
-DNT -DW32 -DW -D_X86_ -DND32 -DDTRACE -D_CRT_SECURE_NO_WARNINGS -DPRODUCTION_VERSION -DDUMMY
- Windows 64ビット版
-DNT -DW32 -DW -DW64 -DND64 -D_AMD64_ -DDTRACE -D_CRT_SECURE_NO_WARNINGS -DND64SERVER -DPRODUCTION_VERSION -DDUMMY
- MaxOSX版
-DNO_NULL_VTABLE_ENTRY -DMAC -DMAC_OSX -DMAC_CARBON -D__CF_USE_FRAMEWORK_INCLUDES__ -DLARGE64_FILES -DHANDLE_IS_32BITS -DTARGET_API_MAC_CARBON -DPRODUCTION_VERSION -DOVERRIDEDEBUG // オフィシャルではないが、これも必要 -DLONGIS64BIT
- Linux 32ビット版
-DGCC3 -DGCC4 -DGCC_LBLB_NOT_SUPPORTED -DUNIX -DLINUX -DLINUX86 -DW -DW32 -DDTRACE -DPTHREAD_KERNEL -D_REENTRANT -DUSE_THREADSAFE_INTERFACES -D_POSIX_THREAD_SAFE_FUNCTIONS -DHANDLE_IS_32BITS -DHAS_IOCP -DHAS_BOOL -DHAS_DLOPEN -DUSE_PTHREAD_INTERFACES -DLARGE64_FILES -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DPRODUCTION_VERSION -DOVERRIDEDEBUG
- Linux 64ビット版
-DGCC3 -DGCC4 -DGCC_LBLB_NOT_SUPPORTED -DUNIX -DLINUX -DLINUX86 -DND64 -DW32 -DLINUX64 -DW -DLINUX86_64 -DDTRACE -DPTHREAD_KERNEL -D_REENTRANT -DUSE_THREADSAFE_INTERFACES -D_POSIX_THREAD_SAFE_FUNCTIONS -DHANDLE_IS_32BITS -DHAS_IOCP -DHAS_BOOL -DHAS_DLOPEN -DUSE_PTHREAD_INTERFACES -DLARGE64_FILES -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDUNIX64 -DLONGIS64BIT -DPRODUCTION_VERSION -DOVERRIDEDEBUG
Qtプロジェクトインクルードファイル(*.pri)
// ../platform.pri (for Windows) NotesCAPIPath = C:/Users/myhome/notesapi901
// ../platform.pri (for MacOS) NotesCAPIPath = /Users/myhome/notesapi901 NotesLibsPath = '/Applications/IBM Notes.app/Contents/MacOS’
// ../platform.pri (for Linux) NotesCAPIPath = /home/myhome/notesapi901 NotesLibsPath = /opt/ibm/notes
Qt親プロジェクトファイル(*.pro)
// myproject.pro TEMPLATE = subdir // サブディレクトリプロジェクト CONFIG += ordered // 順番にビルドする SUBDIRS += myshare myapp
Qt子プロジェクトファイル(*.pro)
// myshare/myshare.pro and myapp/myapp.pro include(../../platform.pri) DEFINES += PRODUCTION_VERSION !macx { DEFINES += W32 W DTRACE } !win32 { DEFINES += HANDLE_IS_32BITS LARGE64_FILES OVERRIDEDEBUG } win32 { DEFINES += NT _CRT_SECURE_NO_WARNINGS DUMMY QMAKE_CXXFLAGS += -wd4503 -wd4005 contains(QMAKE_TARGET.arch, x86_64) { DEFINES += W64 ND64 _AMD64_ ND64SERVER NotesLibsPath = $$NotesCAPIPath/lib/mswin64 } else { DEFINES += ND32 _X86_ NotesLibsPath = $$NotesCAPIPath/lib/mswin32 } } else:macx { DEFINES += MAC MAC_OSX MAC_CARBON NO_NULL_VTABLE_ENTRY __CF_USE_FRAMEWORK_INCLUDES__ TARGET_API_MAC_CARBON DEFINES += LONGIS64BIT } else:unix { DEFINES += UNIX LINUX LINUX86 GCC3 GCC4 GCC_LBLB_NOT_SUPPORTED PTHREAD_KERNEL _REENTRANT USE_THREADSAFE_INTERFACES _POSIX_THREAD_SAFE_FUNCTIONS HAS_IOCP HAS_BOOL HAS_DLOPEN USE_PTHREAD_INTERFACES _LARGEFILE_SOURCE _LARGEFILE64_SOURCE contains(QMAKE_TARGET.arch, x86_64) { DEFINES += ND64 LINUX64 LINUX86_64 NDUNIX64 LONGIS64BIT } LIBS += -Wl,-rpath,$$NotesLibsPath } INCLUDEPATH += $$NotesCAPIPath/include DEPENDPATH += $$NotesCAPIPath/include LIBS += -lnotes -L$$NotesLibsPath
www.slideshare.net