diff options
Diffstat (limited to 'extension/CMakeLists.txt')
-rw-r--r-- | extension/CMakeLists.txt | 58 |
1 files changed, 19 insertions, 39 deletions
diff --git a/extension/CMakeLists.txt b/extension/CMakeLists.txt index bb8b51f3..9013bda3 100644 --- a/extension/CMakeLists.txt +++ b/extension/CMakeLists.txt @@ -26,61 +26,45 @@ remove_definitions(-DGAWK) -add_library (filefuncs MODULE filefuncs.c stack.c gawkfts.c) -target_link_libraries (filefuncs) -set_target_properties(filefuncs PROPERTIES PREFIX "") +MACRO(BuildExtension name sources) + add_library (${name} MODULE ${sources}) + target_link_libraries(${name}) + set_target_properties(${name} PROPERTIES PREFIX "") + install(PROGRAMS ${CMAKE_BINARY_DIR}/extension/${name}${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION lib) +ENDMACRO(BuildExtension) + +BuildExtension(filefuncs filefuncs.c stack.c gawkfts.c) DefineFunctionIfAvailable(fnmatch HAVE_FNMATCH) DefineHFileIfAvailable(fnmatch.h HAVE_FNMATCH_H) if (${HAVE_FNMATCH} AND ${HAVE_FNMATCH_H}) - add_library (fnmatch MODULE fnmatch.c) - target_link_libraries (fnmatch) - set_target_properties(fnmatch PROPERTIES PREFIX "") + BuildExtension(fnmatch fnmatch.c) else() message(WARNING "extension fnmatch cannot be built because function fnmatch or fnmatch.h is missing") endif() -add_library (fork MODULE fork.c) -target_link_libraries (fork) -set_target_properties(fork PROPERTIES PREFIX "") - -add_library (inplace MODULE inplace.c) -target_link_libraries (inplace) -set_target_properties(inplace PROPERTIES PREFIX "") - -add_library (ordchr MODULE ordchr.c) -target_link_libraries (ordchr) -set_target_properties(ordchr PROPERTIES PREFIX "") +BuildExtension(fork fork.c) +BuildExtension(inplace inplace.c) +BuildExtension(ordchr ordchr.c) DefineHFileIfAvailable(dirent.h HAVE_DIRENT_H) if (${HAVE_DIRENT_H}) - add_library (readdir MODULE readdir.c) - target_link_libraries (readdir) -set_target_properties(readdir PROPERTIES PREFIX "") + BuildExtension(readdir readdir.c) else() message(WARNING "extension readdir cannot be built because function readdir is missing") endif() -add_library (readfile MODULE readfile.c) -target_link_libraries (readfile) -set_target_properties(readfile PROPERTIES PREFIX "") - -add_library (revoutput MODULE revoutput.c) -target_link_libraries (revoutput) -set_target_properties(revoutput PROPERTIES PREFIX "") +BuildExtension(readfile readfile.c) +BuildExtension(revoutput revoutput.c) DefineFunctionIfAvailable(getdtablesize HAVE_GETDTABLESIZE) if (${HAVE_GETDTABLESIZE}) - add_library (revtwoway MODULE revtwoway.c) - target_link_libraries (revtwoway) - set_target_properties(revtwoway PROPERTIES PREFIX "") + BuildExtension(revtwoway revtwoway.c) else() message(WARNING "extension revtwoway cannot be built because function getdtablesize is missing") endif() -add_library (rwarray MODULE rwarray.c) -target_link_libraries (rwarray) -set_target_properties(rwarray PROPERTIES PREFIX "") +BuildExtension(rwarray rwarray.c) DefineFunctionIfAvailable(select HAVE_SELECT) DefineFunctionIfAvailable(gettimeofday HAVE_GETTIMEOFDAY) @@ -88,11 +72,7 @@ DefineHFileIfAvailable(sys/select.h HAVE_SYS_SELECT_H) DefineFunctionIfAvailable(nanosleep HAVE_NANOSLEEP) DefineHFileIfAvailable(time.h HAVE_TIME_H) DefineFunctionIfAvailable(GetSystemTimeAsFileTime HAVE_GETSYSTEMTIMEASFILETIME) -add_library (time MODULE time.c) -target_link_libraries (time) -set_target_properties(time PROPERTIES PREFIX "") +BuildExtension(time time.c) -add_library (testext MODULE testext.c) -target_link_libraries (testext) -set_target_properties(testext PROPERTIES PREFIX "") +BuildExtension(testext testext.c) |