Mercurial > archived > louis > epitech > mq > rathaxes
comparison maintainers_refactor_the_build_system_to_allow_standalone_rathaxes_projects_with_cmake.patch @ 54:1f78508dbaa2
Wip on the build system, windows fixes (todo: put RATHAXES_PATH in the registry)
author | Louis Opter <louis@lse.epitech.net> |
---|---|
date | Thu, 26 Jan 2012 21:40:22 +0100 |
parents | 92b87bf82dd8 |
children | b2fe898b6957 |
comparison
equal
deleted
inserted
replaced
53:92b87bf82dd8 | 54:1f78508dbaa2 |
---|---|
45 -ENDIF (CMAKE_COMPILER_IS_GNUCC) | 45 -ENDIF (CMAKE_COMPILER_IS_GNUCC) |
46 - | 46 - |
47 # Subdirectories ############################################################### | 47 # Subdirectories ############################################################### |
48 | 48 |
49 IF (PDFLATEX_COMPILER AND PS2PDF_CONVERTER) | 49 IF (PDFLATEX_COMPILER AND PS2PDF_CONVERTER) |
50 @@ -87,7 +77,7 @@ | |
51 SET(PACKAGE_NAME "rathaxes") | |
52 SET(IGNORE_PATTERNS | |
53 "/\\\\.hg.*" | |
54 - ".*\\\\.sw.?$" | |
55 + ".*\\\\.sw.$" | |
56 "/CMakeFiles/" | |
57 "CMakeCache.txt" | |
58 ".*install.*\\\\.(cmake|txt)$" | |
50 diff --git a/maintainers/CMakeLists.txt b/maintainers/CMakeLists.txt | 59 diff --git a/maintainers/CMakeLists.txt b/maintainers/CMakeLists.txt |
51 --- a/maintainers/CMakeLists.txt | 60 --- a/maintainers/CMakeLists.txt |
52 +++ b/maintainers/CMakeLists.txt | 61 +++ b/maintainers/CMakeLists.txt |
53 @@ -10,6 +10,10 @@ | 62 @@ -10,6 +10,10 @@ |
54 INSTALL(PROGRAMS ${CODEWORKER_BINARY_PATH} | 63 INSTALL(PROGRAMS ${CODEWORKER_BINARY_PATH} |
102 INCLUDE(FindPackageHandleStandardArgs) | 111 INCLUDE(FindPackageHandleStandardArgs) |
103 diff --git a/maintainers/CMakeScripts/FindRathaxes.cmake b/maintainers/CMakeScripts/FindRathaxes.cmake | 112 diff --git a/maintainers/CMakeScripts/FindRathaxes.cmake b/maintainers/CMakeScripts/FindRathaxes.cmake |
104 new file mode 100644 | 113 new file mode 100644 |
105 --- /dev/null | 114 --- /dev/null |
106 +++ b/maintainers/CMakeScripts/FindRathaxes.cmake | 115 +++ b/maintainers/CMakeScripts/FindRathaxes.cmake |
107 @@ -0,0 +1,18 @@ | 116 @@ -0,0 +1,19 @@ |
108 +# Package Finder for Rathaxes and CMake. | 117 +# Package Finder for Rathaxes and CMake. |
109 +# | 118 +# |
110 +# This finder simply seek for the rathaxes compiler and stores its path in the | 119 +# This finder simply seek for the rathaxes compiler and stores its path in the |
111 +# variable RATHAXES_BINARY_PATH, if rathaxes is found. | 120 +# variable RATHAXES_BINARY_PATH, if rathaxes is found. |
112 +# | 121 +# |
113 +# This finder is used internally by UseRathaxes. | 122 +# This finder is used internally by UseRathaxes. |
114 + | 123 + |
115 +IF (NOT RATHAXES_BINARY_PATH) | 124 +IF (NOT RATHAXES_BINARY_PATH) |
116 + FIND_PROGRAM(RATHAXES_BINARY_PATH | 125 + FIND_PROGRAM(RATHAXES_BINARY_PATH |
117 + NAMES | 126 + NAMES |
118 + rathaxes) | 127 + rathaxes |
128 + rathaxes.bat) | |
119 +ELSE (NOT RATHAXES_BINARY_PATH) | 129 +ELSE (NOT RATHAXES_BINARY_PATH) |
120 + SET(RATHAXES_FIND_QUIETLY TRUE) | 130 + SET(RATHAXES_FIND_QUIETLY TRUE) |
121 +ENDIF (NOT RATHAXES_BINARY_PATH) | 131 +ENDIF (NOT RATHAXES_BINARY_PATH) |
122 + | 132 + |
123 +INCLUDE(FindPackageHandleStandardArgs) | 133 +INCLUDE(FindPackageHandleStandardArgs) |
208 - "${RATHAXES_SOURCE_DIR}/maintainers/CMakeScripts/Templates/Windows_Makefile") | 218 - "${RATHAXES_SOURCE_DIR}/maintainers/CMakeScripts/Templates/Windows_Makefile") |
209 + SET(WINDOWS_MAKEFILE "${_USE_RATHAXES_LIST_DIR}/Templates/Windows_Makefile") | 219 + SET(WINDOWS_MAKEFILE "${_USE_RATHAXES_LIST_DIR}/Templates/Windows_Makefile") |
210 | 220 |
211 SET(KERNEL_OBJECT_NAME "${RATHAXES_SOURCE}_${SYSTEM}.sys") | 221 SET(KERNEL_OBJECT_NAME "${RATHAXES_SOURCE}_${SYSTEM}.sys") |
212 ADD_CUSTOM_COMMAND(OUTPUT "${KERNEL_OBJECT_NAME}" | 222 ADD_CUSTOM_COMMAND(OUTPUT "${KERNEL_OBJECT_NAME}" |
213 @@ -237,3 +235,59 @@ | 223 @@ -237,3 +235,58 @@ |
214 MESSAGE(STATUS "Don't know how to build kernel modules for ${SYSTEM} (yet)") | 224 MESSAGE(STATUS "Don't know how to build kernel modules for ${SYSTEM} (yet)") |
215 ENDIF (${SYSTEM} MATCHES "Linux") | 225 ENDIF (${SYSTEM} MATCHES "Linux") |
216 ENDFUNCTION(ADD_RATHAXES_LKM NAME RATHAXES_SOURCE) | 226 ENDFUNCTION(ADD_RATHAXES_LKM NAME RATHAXES_SOURCE) |
217 + | 227 + |
218 +# Like FIND_PACKAGE but also search in the Rathaxes directories. Usage: | 228 +# Like FIND_PACKAGE but also search in the Rathaxes directories. Usage: |
219 +# | 229 +# |
220 +# FIND_RATHAXES_PACKAGE(PACKAGE [REQUIRED]) | 230 +# FIND_RATHAXES_PACKAGE(PACKAGE [REQUIRED]) |
221 +FUNCTION(FIND_RATHAXES_PACKAGE NAME) | 231 +FUNCTION(FIND_RATHAXES_PACKAGE NAME) |
222 + FOREACH(I ${CMAKE_SYSTEM_PREFIX_PATH}) | |
223 + LIST(APPEND CMAKE_MODULE_PATH ${I}/share/rathaxes/CMakeScripts) | |
224 + ENDFOREACH(I ${CMAKE_SYSTEM_PREFIX_PATH}) | |
225 + # The environment variable is set by rathaxesvars.bat on Windows | 232 + # The environment variable is set by rathaxesvars.bat on Windows |
226 + LIST(APPEND CMAKE_MODULE_PATH $ENV{RATHAXES_PATH}/usr/) | 233 + FOREACH(I ${CMAKE_SYSTEM_PREFIX_PATH} $ENV{RATHAXES_PATH}) |
234 + LIST(APPEND CMAKE_MODULE_PATH "${I}/share/rathaxes/CMakeScripts") | |
235 + ENDFOREACH(I ${CMAKE_SYSTEM_PREFIX_PATH} $ENV{RATHAXES_PATH}) | |
227 + FIND_PACKAGE(${NAME} ${ARGV2}) | 236 + FIND_PACKAGE(${NAME} ${ARGV2}) |
228 +ENDFUNCTION(FIND_RATHAXES_PACKAGE NAME) | 237 +ENDFUNCTION(FIND_RATHAXES_PACKAGE NAME) |
229 + | 238 + |
230 +# Code ######################################################################### | 239 +# Code ######################################################################### |
231 + | 240 + |
319 | 328 |
320 +rem This variable is simply used as a shortcut to the Rathaxes install | 329 +rem This variable is simply used as a shortcut to the Rathaxes install |
321 +rem directory (since we never know where it can be on Windows). Useful to | 330 +rem directory (since we never know where it can be on Windows). Useful to |
322 +rem specify some paths in the documentation. This is also used by the | 331 +rem specify some paths in the documentation. This is also used by the |
323 +rem FindCodeWorker CMake finder. | 332 +rem FindCodeWorker CMake finder. |
324 +set RATHAXES_PATH="%CD%" | 333 +set RATHAXES_PATH=%CD% |
325 set CNORM_PATH="%CD%@CNORM_PATH@" | 334 set CNORM_PATH="%CD%@CNORM_PATH@" |
326 -set COMPILER_PATH="%CD%@COMPILER_PATH@" | 335 -set COMPILER_PATH="%CD%@COMPILER_PATH@" |
327 +set RATHAXES_LIB="%CD%@RATHAXES_LIB@" | 336 +set RATHAXES_LIB="%CD%@RATHAXES_LIB@" |
328 +set COMPILER_PATH="%CD%%RATHAXES_LIB%/compiler" | 337 +set COMPILER_PATH="%CD%@RATHAXES_LIB@/compiler" |
329 set LOCAL_CACHE_PATH="%LOCALAPPDATA%\\Rathaxes\\cache\\" | 338 set LOCAL_CACHE_PATH="%LOCALAPPDATA%\\Rathaxes\\cache\\" |
330 | 339 |
331 set INCLUDE_PATHS=-I %CNORM_PATH% -I %COMPILER_PATH% | 340 set INCLUDE_PATHS=-I %CNORM_PATH% -I %COMPILER_PATH% |
332 diff --git a/rathaxes/CMakeLists.txt b/rathaxes/CMakeLists.txt | 341 diff --git a/rathaxes/CMakeLists.txt b/rathaxes/CMakeLists.txt |
333 --- a/rathaxes/CMakeLists.txt | 342 --- a/rathaxes/CMakeLists.txt |
368 + | 377 + |
369 +ADD_SUBDIRECTORY(helloworld) | 378 +ADD_SUBDIRECTORY(helloworld) |
370 +ADD_SUBDIRECTORY(syntax) | 379 +ADD_SUBDIRECTORY(syntax) |
371 +ADD_SUBDIRECTORY(e1000) | 380 +ADD_SUBDIRECTORY(e1000) |
372 +ADD_SUBDIRECTORY(windows_minimal_lkm) | 381 +ADD_SUBDIRECTORY(windows_minimal_lkm) |
382 diff --git a/rathaxes/samples/windows_minimal_lkm/CMakeLists.txt b/rathaxes/samples/windows_minimal_lkm/CMakeLists.txt | |
383 --- a/rathaxes/samples/windows_minimal_lkm/CMakeLists.txt | |
384 +++ b/rathaxes/samples/windows_minimal_lkm/CMakeLists.txt | |
385 @@ -3,5 +3,9 @@ | |
386 BLT log.blt lkm.blt) | |
387 | |
388 IF (WIN32) | |
389 - ADD_RATHAXES_LKM(minimal_lkm minimal_lkm_src) | |
390 + IF ("_not_a_var_$ENV{DDKBUILDENV}" STREQUAL "_not_a_var_chk") | |
391 + ADD_RATHAXES_LKM(minimal_lkm minimal_lkm_src) | |
392 + ELSE ("_not_a_var_$ENV{DDKBUILDENV}" STREQUAL "_not_a_var_chk") | |
393 + MESSAGE(STATUS "Not in the Checked Windows Driver Development Kit environment, not building the Windows LKM") | |
394 + ENDIF ("_not_a_var_$ENV{DDKBUILDENV}" STREQUAL "_not_a_var_chk") | |
395 ENDIF (WIN32) |