summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorcyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-17 20:16:55 +0000
committercyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-17 20:16:55 +0000
commit2d72446860abac08dc4f36b10fde7536f7897956 (patch)
tree25dc114bb696bc8752d68e6e050da8d3dda5f282 /lang
parent1cd73b4dadb8e618a0ec56289408922be42aac8a (diff)
More CMake work, mostly to handle both *nix and Windows builds.
Also some tweaks to generation files (like version.sh) to take both input and output files as arguments, to handle CMake when it's used for an out-of-source build. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1836 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'lang')
-rw-r--r--lang/CMakeLists.txt62
-rw-r--r--lang/langtool.c18
2 files changed, 50 insertions, 30 deletions
diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt
index e4d75bf0d..874c9f763 100644
--- a/lang/CMakeLists.txt
+++ b/lang/CMakeLists.txt
@@ -1,9 +1,9 @@
-if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
- set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
-else(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
- file(RELATIVE_PATH DIR ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
- set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/${DIR})
-endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
+#if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
+# set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
+#else(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
+# file(RELATIVE_PATH DIR ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+# set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/${DIR})
+#endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
#add_custom_command(OUTPUT ${BUILD_DIR}/langcomp
# COMMAND ${MY_COMPILER} ${MY_COMP_ARG} ${CMAKE_CXX_CFLAGS} langcomp.c -o ${BUILD_DIR}/langcomp
@@ -13,6 +13,7 @@ endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
set_source_files_properties(langcomp.c PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}")
#add_executable(${BUILD_DIR}/langcomp langcomp.c)
add_executable(langcomp langcomp.c)
+set_target_properties(langcomp PROPERTIES LINK_FLAGS "${LDFLAGS}")
#set_target_properties(langcomp PROPERTIES COMPILE_FLAGS ${CXXFLAGS})
#set_target_properties(${BUILD_DIR}/langcomp PROPERTIES LINKER_LANGUAGE CXX)
@@ -20,10 +21,20 @@ add_executable(langcomp langcomp.c)
# COMMAND ${GREP} '^[A-Z]' en_us.l > ${BUILD_DIR}/index
# MAIN_DEPENDENCY en_us.l
#)
-add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/index
- COMMAND ${GREP} '^[A-Z]' ${CMAKE_CURRENT_SOURCE_DIR}/en_us.l > ${CMAKE_CURRENT_BINARY_DIR}/index
- MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/en_us.l
-)
+if(WIN32)
+ set_source_files_properties(langtool.c PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}")
+ add_executable(langtool langtool.c)
+ set_target_properties(langtool PROPERTIES LINK_FLAGS "${LDFLAGS}")
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/index
+ COMMAND langtool index ${CMAKE_CURRENT_SOURCE_DIR}/en_us.l ${CMAKE_CURRENT_BINARY_DIR}/index
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/en_us.l DEPENDS langtool
+ )
+else(WIN32)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/index
+ COMMAND ${GREP} '^[A-Z]' ${CMAKE_CURRENT_SOURCE_DIR}/en_us.l > ${CMAKE_CURRENT_BINARY_DIR}/index
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/en_us.l
+ )
+endif(WIN32)
#add_custom_target(lang_index DEPENDS ${BUILD_DIR}/index)
#add_custom_target(language)
@@ -56,11 +67,18 @@ endforeach(LANG_L)
# COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/language.h ${Anope_SOURCE_DIR}/include/
# MAIN_DEPENDENCY ${BUILD_DIR}/index
#)
-add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/language.h
- COMMAND ${PERL} -e < ${CMAKE_CURRENT_BINARY_DIR}/index > ${CMAKE_CURRENT_BINARY_DIR}/language.h 'print STDERR \"Generating language.h... \"\; $$i=0\; while \(<>\) { chop\; printf \"\#define %-32s %d\\n\", $$_, $$i++\; } print \"\\n\#define NUM_STRINGS $$i\\n\"\; print STDERR \"$$i strings\\n\"\;'
- #COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/language.h ${Anope_SOURCE_DIR}/include/
- MAIN_DEPENDENCY ${CMAKE_CURRENT_BINARY_DIR}/index
-)
+if(WIN32)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/language.h
+ COMMAND langtool language.h ${CMAKE_CURRENT_BINARY_DIR}/index ${CMAKE_CURRENT_BINARY_DIR}/language.h
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_BINARY_DIR}/index DEPENDS langtool
+ )
+else(WIN32)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/language.h
+ COMMAND ${PERL} -e < ${CMAKE_CURRENT_BINARY_DIR}/index > ${CMAKE_CURRENT_BINARY_DIR}/language.h 'print STDERR \"Generating language.h... \"\; $$i=0\; while \(<>\) { chop\; printf \"\#define %-32s %d\\n\", $$_, $$i++\; } print \"\\n\#define NUM_STRINGS $$i\\n\"\; print STDERR \"$$i strings\\n\"\;'
+ #COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/language.h ${Anope_SOURCE_DIR}/include/
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_BINARY_DIR}/index
+ )
+endif(WIN32)
#add_custom_target(lang_language_h DEPENDS ${BUILD_DIR}/language.h)
#add_dependencies(language lang_language_h)
#add_dependencies(language ${BUILD_DIR}/language.h)
@@ -76,9 +94,11 @@ install(FILES ${LANGS}
DESTINATION "${DATADIR}/languages"
PERMISSIONS ${PERMS}
)
-if(RUNGROUP)
- #install(CODE "execute_process(COMMAND ${CHGRP} -R ${RUNGROUP} \"${DATADIR}/languages\")")
- install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"${DATADIR}/languages\")")
-else(RUNGROUP)
- install(CODE "execute_process(COMMAND ${CHMOD} 0700 \"${DATADIR}/languages\")")
-endif(RUNGROUP)
+if(NOT WIN32)
+ if(RUNGROUP)
+ #install(CODE "execute_process(COMMAND ${CHGRP} -R ${RUNGROUP} \"${DATADIR}/languages\")")
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"${DATADIR}/languages\")")
+ else(RUNGROUP)
+ install(CODE "execute_process(COMMAND ${CHMOD} 0700 \"${DATADIR}/languages\")")
+ endif(RUNGROUP)
+endif(NOT WIN32)
diff --git a/lang/langtool.c b/lang/langtool.c
index 21890c054..3efae3c1b 100644
--- a/lang/langtool.c
+++ b/lang/langtool.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for furhter details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* Written by Dominick Meglio <codemastr@unrealircd.com>
*
*/
@@ -29,14 +29,14 @@ char *strip(char *str)
int main(int argc, char *argv[])
{
- if (argc < 2)
+ if (argc < 4)
exit(1);
/* Build the index file */
if (!strcmp(argv[1], "index"))
{
- FILE *fd = fopen("en_us.l", "rb");
- FILE *fdout = fopen("index", "wb");
+ FILE *fd = fopen(argv[2], "rb");
+ FILE *fdout = fopen(argv[3], "wb");
char buf[1024];
if (!fd || !fdout)
exit(2);
@@ -52,10 +52,10 @@ int main(int argc, char *argv[])
/* Build the language.h file */
else if (!strcmp(argv[1], "language.h"))
{
- FILE *fd = fopen("index", "r");
- FILE *fdout = fopen("language.h", "w");
+ FILE *fd = fopen(argv[2], "r");
+ FILE *fdout = fopen(argv[3], "w");
char buf[1024];
- int i = 0;
+ int i = 0;
if (!fd || !fdout)
exit(2);
@@ -72,5 +72,5 @@ int main(int argc, char *argv[])
fclose(fdout);
}
return 0;
-
+
}