# Copyright (C) 2007-2009 LuaDist. # Created by Peter Kapec # Redistribution and use of this file is allowed according to the terms of the MIT license. # For details see the COPYRIGHT file distributed with LuaDist. # Please note that the package source code is licensed under its own license. PROJECT(iuplua C) # CMake configuration: CMAKE_MINIMUM_REQUIRED (VERSION 2.6) SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) # Where to install module parts: SET (INSTALL_BIN bin CACHE PATH "Directory for binaries.") SET (INSTALL_CMOD share/lua/cmod CACHE PATH "Directory to install Lua binary modules.") SET (INSTALL_LIB lib CACHE PATH "Directory for external libraries.") # Macros MACRO(ADD_PREFIX prefix rootlist) SET(outlist ) FOREACH(root ${${rootlist}}) LIST(APPEND outlist ${prefix}${root}) ENDFOREACH(root) SET(${rootlist} ${outlist}) ENDMACRO(ADD_PREFIX) # find headers FIND_PACKAGE(Lua51 REQUIRED) INCLUDE_DIRECTORIES (${LUA_INCLUDE_DIR}) FIND_PACKAGE(OpenGL) # On Apple we need X11 OpenGL so FindOpenGL wont help us IF(APPLE) SET(OPENGL_INCLUDE_DIR /usr/X11/include ) FIND_LIBRARY(OPENGL_GL_LIB NAMES gl PATHS /usr/X11/lib) FIND_LIBRARY(OPENGL_GLU_LIB NAMES glu PATHS /usr/X11/lib) SET(OPENGL_LIBRARIES ${OPENGL_GL_LIB} ${OPENGL_GLU_LIB}) ENDIF() INCLUDE_DIRECTORIES (${OPENGL_INCLUDE_DIR}) FIND_PATH( IUP_INCLUDE_DIR NAMES iup.h ) FIND_PATH( CD_INCLUDE_DIR NAMES cd.h ) FIND_PATH( IM_INCLUDE_DIR NAMES im.h ) INCLUDE_DIRECTORIES (${IUP_INCLUDE_DIR} ${CD_INCLUDE_DIR} ${IM_INCLUDE_DIR}) # find libs FIND_LIBRARY( IM_LIBRARY NAMES im) FIND_LIBRARY( IUPIM_LIBRARY NAMES iupim) FIND_LIBRARY( CD_LIBRARY NAMES cd) FIND_LIBRARY( IUPCD_LIBRARY NAMES iupcd) FIND_LIBRARY( IUP_LIBRARY NAMES iup) FIND_LIBRARY( IUPGL_LIBRARY NAMES iupgl) FIND_LIBRARY( IUPOLE_LIBRARY NAMES iupole) FIND_LIBRARY( IUPCONTROLS_LIBRARY NAMES iupcontrols) FIND_LIBRARY( IUPPPLOT_LIBRARY NAMES iuppplot) FIND_LIBRARY( IUPIMGLIB_LIBRARY NAMES iupimglib) # find moduless FIND_LIBRARY( IMLUA_LIBRARY NAMES imlua) FIND_LIBRARY( IMLUAPROCESS_LIBRARY NAMES process) FIND_LIBRARY( CDLUA_LIBRARY NAMES cdlua libcdlua) FIND_LIBRARY( CDLUAIM_LIBRARY NAMES cdluaim) #### INCLUDE_DIRECTORIES (include src srclua5) INCLUDE(TestBigEndian) TEST_BIG_ENDIAN(IS_BIG_ENDIAN) IF(IS_BIG_ENDIAN) ADD_DEFINITIONS(-DTEC_BIGENDIAN) ENDIF() INCLUDE (CheckTypeSize) CHECK_TYPE_SIZE("void*" CMAKE_SIZEOF_VOIDP) IF(CMAKE_SIZEOF_VOIDP EQUAL 8) ADD_DEFINITIONS(-DTEC_64) ENDIF() ADD_DEFINITIONS(-DIUPLUA_USELOH) #### # iuplua SET (SRC_IUPLUA iuplua.c iuplua_api.c il_scanf.c il_getparam.c il_getcolor.c il_button.c il_canvas.c il_dialog.c il_colordlg.c il_filedlg.c il_fill.c il_frame.c il_hbox.c il_normalizer.c il_item.c il_image.c il_imagergb.c il_imagergba.c il_label.c il_menu.c il_multiline.c il_list.c il_separator.c il_user.c il_submenu.c il_text.c il_toggle.c il_vbox.c il_zbox.c il_timer.c il_sbox.c il_spin.c il_spinbox.c il_cbox.c il_messagedlg.c il_radio.c il_val.c il_tabs.c il_fontdlg.c il_progressbar.c ) ADD_PREFIX(srclua5/ SRC_IUPLUA) ADD_LIBRARY(iuplua SHARED ${SRC_IUPLUA}) TARGET_LINK_LIBRARIES(iuplua ${LUA_LIBRARY} ${IUP_LIBRARY}) IF(MSVC) SET_TARGET_PROPERTIES(iuplua PROPERTIES OUTPUT_NAME libiuplua CLEAN_DIRECT_OUTPUT 1 LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iuplua5.def") ENDIF(MSVC) INSTALL(TARGETS iuplua DESTINATION ${INSTALL_LIB}) # iuplua module ADD_LIBRARY(iuplua_module MODULE srclua5/iuplua_module.c) TARGET_LINK_LIBRARIES(iuplua_module iuplua) SET_TARGET_PROPERTIES(iuplua_module PROPERTIES PREFIX "" OUTPUT_NAME iuplua CLEAN_DIRECT_OUTPUT 1 ) IF(MSVC) SET_TARGET_PROPERTIES(iuplua_module PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iuplua_module.def") ENDIF(MSVC) INSTALL(TARGETS iuplua_module DESTINATION ${INSTALL_CMOD}) # iupluacd ADD_LIBRARY(iupluacd MODULE srclua5/iuplua_cd.c) TARGET_LINK_LIBRARIES(iupluacd iuplua ${CDLUA_LIBRARY} ${IUPCD_LIBRARY} ${CD_LIBRARY}) SET_TARGET_PROPERTIES(iupluacd PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(iupluacd PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iupluacd5.def") ENDIF(MSVC) INSTALL(TARGETS iupluacd DESTINATION ${INSTALL_CMOD}) # iupluacontrols SET(SRC_IUPLUACONTROLS iuplua_controls.c il_mask.c il_tree_aux.c il_matrix_aux.c il_dial.c il_gauge.c il_colorbrowser.c il_colorbar.c il_matrix.c il_tree.c il_cells.c ) ADD_PREFIX(srclua5/ SRC_IUPLUACONTROLS) ADD_LIBRARY(iupluacontrols MODULE ${SRC_IUPLUACONTROLS}) TARGET_LINK_LIBRARIES (iupluacontrols iuplua ${IUPCONTROLS_LIBRARY} ${CDLUA_LIBRARY}) SET_TARGET_PROPERTIES(iupluacontrols PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(iupluacontrols PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iupluacontrols5.def") ENDIF(MSVC) INSTALL(TARGETS iupluacontrols DESTINATION ${INSTALL_CMOD}) # iupluagl SET (SRC_IUPLUAGL iuplua_glcanvas.c il_glcanvas.c ) ADD_PREFIX(srclua5/ SRC_IUPLUAGL) ADD_LIBRARY(iupluagl MODULE ${SRC_IUPLUAGL}) TARGET_LINK_LIBRARIES (iupluagl iuplua ${IUPGL_LIBRARY} ${OPENGL_LIBRARIES}) SET_TARGET_PROPERTIES(iupluagl PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(iupluagl PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iupluagl5.def") ENDIF(MSVC) INSTALL(TARGETS iupluagl DESTINATION ${INSTALL_CMOD}) # iupluaim ADD_LIBRARY(iupluaim MODULE srclua5/iuplua_im.c) TARGET_LINK_LIBRARIES (iupluaim iuplua ${IUPIM_LIBRARY}) SET_TARGET_PROPERTIES(iupluaim PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(iupluaim PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iupluaim5.def") ENDIF(MSVC) INSTALL(TARGETS iupluaim DESTINATION ${INSTALL_CMOD}) # iupluapplot SET(SRC_IUPLUAPPLOT iuplua_pplot.c il_pplot.c ) ADD_PREFIX(srclua5/ SRC_IUPLUAPPLOT) ADD_LIBRARY(pplot MODULE ${SRC_IUPLUAPPLOT}) TARGET_LINK_LIBRARIES (pplot iuplua ${CDLUA_LIBRARY} ${LUA_LIBRARY} ${IUPPPLOT_LIBRARY}) SET_TARGET_PROPERTIES(pplot PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(pplot PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iuplua_pplot5.def") ENDIF(MSVC) INSTALL(TARGETS pplot DESTINATION ${INSTALL_CMOD}/iuplua) # iupluaimglib #~ 2DO - VC9 problem - see iup library IF(NOT MSVC) ADD_LIBRARY(iupluaimglib MODULE srclua5/iuplua_imglib.c) TARGET_LINK_LIBRARIES (iupluaimglib iuplua ${IUPIMGLIB_LIBRARY} ${IUPIM_LIBRARY}) SET_TARGET_PROPERTIES(iupluaimglib PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(iupluaimglib PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iupluaimglib5.def") ENDIF(MSVC) INSTALL(TARGETS iupluaimglib DESTINATION ${INSTALL_CMOD}) ENDIF() # iupluaole #~ IF(MSVC) #~ ADD_LIBRARY(iupluaole51 MODULE srclua5/olecontrol.c ) #~ TARGET_LINK_LIBRARIES (iupluaole51 ${IUP_LIBRARY} ${IUPOLE_LIBRARY} iuplua ) #~ ADD_DEPENDENCIES(iupluaole51 iuplua) #~ IF(MSVC) #~ SET_TARGET_PROPERTIES(iupluaole51 PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/srclua5/iupluaole5.def") #~ ENDIF(MSVC) #~ ENDIF() # iupview #~ ADD_DEFINITIONS(-DUSE_OPENGL -DUSE_IM ) #~ 2DO - stupid problem... IF(NOT MSVC) ADD_EXECUTABLE (iupview srcview/iup_view.c) TARGET_LINK_LIBRARIES (iupview ${IUPIM_LIBRARY} ${IUPGL_LIBRARY} ${IUPIMGLIB_LIBRARY} ${IUPCONTROLS_LIBRARY} ${IUP_LIBRARY} ${CD_LIBRARY} ${OPENGL_LIBRARIES}) INSTALL (TARGETS iupview DESTINATION ${INSTALL_BIN}) ENDIF() INSTALL (PROGRAMS srcconsole/console5.lua DESTINATION ${INSTALL_BIN})