r329 - in trunk: . misc
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Mon Jun 18 17:50:50 EDT 2007
Author: icculus
Date: 2007-06-18 17:50:50 -0400 (Mon, 18 Jun 2007)
New Revision: 329
Added:
trunk/misc/
trunk/misc/cp.cmake
trunk/misc/mkdir.cmake
trunk/misc/rm_recurse.cmake
Modified:
trunk/
trunk/CMakeLists.txt
Log:
First shot at a "make skeleton" target.
Property changes on: trunk
___________________________________________________________________
Name: svn:ignore
- MojoSetup.xcodeproj
MojoSetup.build
build
Debug
Release
CMakeScripts
CMakeOutput.log
CMakeCache.txt
CMakeError.log
cmake_install.cmake
mojosetup
mojoluac
CMakeTmp
CMakeFiles
Makefile
*.exe
*.dll
*.so
*.dylib
+ MojoSetup.xcodeproj
MojoSetup.build
build
skeleton
Debug
Release
CMakeScripts
CMakeOutput.log
CMakeCache.txt
CMakeError.log
cmake_install.cmake
mojosetup
mojoluac
CMakeTmp
CMakeFiles
Makefile
*.exe
*.dll
*.so
*.dylib
Modified: trunk/CMakeLists.txt
===================================================================
--- trunk/CMakeLists.txt 2007-06-18 19:45:06 UTC (rev 328)
+++ trunk/CMakeLists.txt 2007-06-18 21:50:50 UTC (rev 329)
@@ -292,6 +292,12 @@
# GUI plugins...
+MACRO(MOJOSETUP_ADD_LIBRARY _TARGET _SRCS)
+ ADD_LIBRARY(${_TARGET} SHARED ${_SRCS})
+ SET(MOJOSETUP_TARGETS "${MOJOSETUP_TARGETS};${_TARGET}")
+ENDMACRO(MOJOSETUP_ADD_LIBRARY)
+
+
# BINARY SIZE += 2.5
OPTION(MOJOSETUP_GUI_STDIO "Enable stdio GUI" TRUE)
IF(MOJOSETUP_GUI_STDIO)
@@ -301,7 +307,7 @@
ADD_DEFINITIONS(-DGUI_STATIC_LINK_STDIO=1)
SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_stdio.c)
ELSE(MOJOSETUP_GUI_STDIO_STATIC)
- ADD_LIBRARY(mojosetupgui_stdio SHARED gui_stdio.c)
+ MOJOSETUP_ADD_LIBRARY(mojosetupgui_stdio gui_stdio.c)
ENDIF(MOJOSETUP_GUI_STDIO_STATIC)
ENDIF(MOJOSETUP_GUI_STDIO)
@@ -318,7 +324,7 @@
SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_ncurses.c)
SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} -lncurses) # !!! FIXME
ELSE(MOJOSETUP_GUI_NCURSES_STATIC)
- ADD_LIBRARY(mojosetupgui_ncurses SHARED gui_ncurses.c)
+ MOJOSETUP_ADD_LIBRARY(mojosetupgui_ncurses gui_ncurses.c)
TARGET_LINK_LIBRARIES(mojosetupgui_ncurses "-lncurses") # !!! FIXME
ENDIF(MOJOSETUP_GUI_NCURSES_STATIC)
ENDIF(MOJOSETUP_GUI_NCURSES)
@@ -335,7 +341,7 @@
ADD_DEFINITIONS(-DGUI_STATIC_LINK_MACOSX=1)
SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_macosx.c)
ELSE(MOJOSETUP_GUI_MACOSX_STATIC)
- ADD_LIBRARY(mojosetupgui_macosx SHARED gui_macosx.c)
+ MOJOSETUP_ADD_LIBRARY(mojosetupgui_macosx gui_macosx.c)
TARGET_LINK_LIBRARIES(mojosetupgui_macosx
"-framework Carbon -mmacosx-version-min=10.2"
)
@@ -364,7 +370,7 @@
SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_gtkplus2.c)
SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${LIBGTK_LINK_FLAGS})
ELSE(MOJOSETUP_GUI_GTKPLUS2_STATIC)
- ADD_LIBRARY(mojosetupgui_gtkplus2 SHARED gui_gtkplus2.c)
+ MOJOSETUP_ADD_LIBRARY(mojosetupgui_gtkplus2 gui_gtkplus2.c)
ADD_DEFINITIONS(${LIBGTK_CFLAGS})
TARGET_LINK_LIBRARIES(mojosetupgui_gtkplus2 ${LIBGTK_LINK_FLAGS})
ENDIF(MOJOSETUP_GUI_GTKPLUS2_STATIC)
@@ -383,7 +389,7 @@
ADD_DEFINITIONS(-DGUI_STATIC_LINK_WWW=1)
SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_www.c)
ELSE(MOJOSETUP_GUI_WWW_STATIC)
- ADD_LIBRARY(mojosetupgui_www SHARED gui_www.c)
+ MOJOSETUP_ADD_LIBRARY(mojosetupgui_www gui_www.c)
ENDIF(MOJOSETUP_GUI_WWW_STATIC)
ENDIF(MOJOSETUP_GUI_WWW)
@@ -532,7 +538,25 @@
ENDIF(MOJOSETUP_BUILD_LUAC)
ADD_EXECUTABLE(mojosetup ${MOJOSETUP_SRCS} ${OPTIONAL_SRCS})
+GET_TARGET_PROPERTY(MOJOSETUP_BINARY_LOCATION mojosetup LOCATION)
TARGET_LINK_LIBRARIES(mojosetup ${OPTIONAL_LIBS})
+SET(MOJOSETUP_TARGETS "${MOJOSETUP_TARGETS};mojosetup")
+# For cobbling together a skeleton installer...
+
+ADD_CUSTOM_TARGET(skeleton
+ COMMENT "Assembling Skeleton..."
+ COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton -P ${CMAKE_SOURCE_DIR}/misc/rm_recurse.cmake
+ COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake
+ COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton/scripts -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake
+ COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton/guis -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake
+ COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton/data -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake
+ COMMAND ${CMAKE_COMMAND} -DFROM=${CMAKE_SOURCE_DIR}/scripts/*.lua -DTO=${CMAKE_BINARY_DIR}/skeleton/scripts -P ${CMAKE_SOURCE_DIR}/misc/cp.cmake
+ COMMAND ${CMAKE_COMMAND} -DFROM=${CMAKE_SOURCE_DIR}/*mojosetupgui*.* -DTO=${CMAKE_BINARY_DIR}/skeleton/guis -P ${CMAKE_SOURCE_DIR}/misc/cp.cmake
+ COMMAND ${CMAKE_COMMAND} -DFROM=${MOJOSETUP_BINARY_LOCATION} -DTO=${CMAKE_BINARY_DIR}/skeleton -P ${CMAKE_SOURCE_DIR}/misc/cp.cmake
+)
+
+ADD_DEPENDENCIES(skeleton ${MOJOSETUP_TARGETS})
+
# end of CMakeLists.txt ...
Added: trunk/misc/cp.cmake
===================================================================
--- trunk/misc/cp.cmake (rev 0)
+++ trunk/misc/cp.cmake 2007-06-18 21:50:50 UTC (rev 329)
@@ -0,0 +1,29 @@
+# CMake 2.4.3 lacks a "CMake -E copy" command that handles wildcards.
+#
+# INPUT:
+#
+# FROM - absolute pathname with wildcards to copy
+# TO - absolute pathname of directory to copy to
+#
+# TYPICAL USAGE, from inside a custom target or rule:
+#
+# COMMAND ${CMAKE_COMMAND}
+# -D FROM=${mydirectory}/*.dll
+# -D TO=${yourdirectory}
+# -P ${CMAKE_HOME_DIRECTORY}/cp.cmake
+
+FILE(GLOB FILELIST "${FROM}")
+
+FOREACH(LOOPER ${FILELIST})
+ MESSAGE(STATUS "Copying ${LOOPER} to ${TO}")
+ EXEC_PROGRAM("${CMAKE_COMMAND}" ARGS "-E copy '${LOOPER}' '${TO}'"
+ OUTPUT_VARIABLE EXECOUT
+ RETURN_VALUE RC
+ )
+ # !!! FIXME: how do you do NOT EQUALS?
+ IF(NOT RC EQUAL 0)
+ MESSAGE(STATUS "${EXECOUT}")
+ MESSAGE(FATAL_ERROR "Copy of '${LOOPER}' failed!")
+ ENDIF(NOT RC EQUAL 0)
+ENDFOREACH(LOOPER)
+
Added: trunk/misc/mkdir.cmake
===================================================================
--- trunk/misc/mkdir.cmake (rev 0)
+++ trunk/misc/mkdir.cmake 2007-06-18 21:50:50 UTC (rev 329)
@@ -0,0 +1,18 @@
+# CMake 2.4.3 lacks a "CMake -E mkdir" command.
+# It does have a MAKE_DIRECTORY command, but we cannot run it from inside
+# a custom rule or target. So, we wrap it in a script, which we can then
+# call from a custom command or target.
+#
+# INPUT:
+#
+# DIR - absolute pathname of directory to be created
+#
+# TYPICAL USAGE, from inside a custom target or rule:
+#
+# COMMAND ${CMAKE_COMMAND}
+# -D DIR=${mydirectory}
+# -P ${CMAKE_HOME_DIRECTORY}/mkdir.cmake
+
+MESSAGE(STATUS "Creating directory ${DIR}")
+FILE(MAKE_DIRECTORY "${DIR}")
+
Added: trunk/misc/rm_recurse.cmake
===================================================================
--- trunk/misc/rm_recurse.cmake (rev 0)
+++ trunk/misc/rm_recurse.cmake 2007-06-18 21:50:50 UTC (rev 329)
@@ -0,0 +1,18 @@
+# CMake 2.4.5 lacks a "CMake -E 'rm -rf'" command.
+# It does have a MAKE_DIRECTORY command, but we cannot run it from inside
+# a custom rule or target. So, we wrap it in a script, which we can then
+# call from a custom command or target.
+#
+# INPUT:
+#
+# DIR - absolute pathname of directory to be created
+#
+# TYPICAL USAGE, from inside a custom target or rule:
+#
+# COMMAND ${CMAKE_COMMAND}
+# -D DIR=${mydirectory}
+# -P ${CMAKE_HOME_DIRECTORY}/rm_recurse.cmake
+
+MESSAGE(STATUS "Removing directory ${DIR}")
+FILE(REMOVE_RECURSE "${DIR}")
+
More information about the mojosetup-commits
mailing list