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