aboutsummaryrefslogtreecommitdiff
path: root/am2cmake
diff options
context:
space:
mode:
Diffstat (limited to 'am2cmake')
-rwxr-xr-xam2cmake175
1 files changed, 99 insertions, 76 deletions
diff --git a/am2cmake b/am2cmake
index 552f4c1b..2c3c9451 100755
--- a/am2cmake
+++ b/am2cmake
@@ -11,10 +11,12 @@ BuildNoKDE=0
BuildKDE3=1
BuildKDE4=2
+$withConv=false
+
+
$buildType=BuildKDE3
$allTargets=Array.new
-$infoFile=File.new("AdditionalInfo.txt", "w+")
class InstallTarget
def initialize
@@ -116,6 +118,11 @@ class CMakeFile
@subDirs=Array.new
@skippedSubDirs=Array.new
+ @configHeaders=Array.new
+ $configHeaders.each do |header|
+ @configHeaders.push($1) if header=~ Regexp.new("^"+@path+"([^\\/]+\\.h)\\.in")
+ end
+
parseFile
if $buildType==BuildKDE3
@@ -385,6 +392,16 @@ class CMakeFile
end
end
end
+
+ if line =~ /^\s*COMPILE_FIRST\s*=\s*(\S+.*)$/
+ ($1).split.each do |dir|
+ if dir =~ /\$\(.+\)/
+ @skippedSubDirs.push(dir)
+ else
+ @subDirs.push(dir) if dir!="."
+ end
+ end
+ end
end
@@ -398,6 +415,10 @@ class CMakeFile
file.printf("LINK_DIRECTORIES(${KDE3_LIB_DIR})\n\n")
end
+
+ if !@configHeaders.empty?
+ @configHeaders.each{ |header| file.printf("CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/#{header}.cmake ${CMAKE_CURRENT_BINARY_DIR}/#{header} )\n\n") }
+ end
if not @subDirs.empty?
@subDirs.each{ |dir| file.printf("ADD_SUBDIRECTORY( %s ) \n", dir)}
@@ -579,25 +600,29 @@ class CMakeFile
def createKDE4ListsFile
file=File.new(@listsFile, "w+");
- if @amFile=="Makefile.am" && $no_kde==false # the toplevel Makefile.am
- file.printf("FIND_PACKAGE(KDE4 REQUIRED)\n\n")
- file.printf("SET(CMAKE_VERBOSE_MAKEFILE ON)\n\n")
- file.printf("ADD_DEFINITIONS(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})\n\n")
- file.printf("LINK_DIRECTORIES(${KDE4_LIB_DIR})\n\n")
+ if @amFile=="Makefile.am" # the toplevel Makefile.am
+ file.printf("find_package(KDE4 REQUIRED)\n\n")
+ file.printf("set(CMAKE_VERBOSE_MAKEFILE ON)\n\n")
+ file.printf("add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})\n\n")
+ file.printf("link_directories(${KDE4_LIB_DIR})\n\n")
+ file.printf("include(ConvenienceLibs.cmake)\n\n")
+ end
+ if !@configHeaders.empty?
+ @configHeaders.each{ |header| file.printf("configure_file(${CMAKE_CURRENT_SOURCE_DIR}/#{header}.cmake ${CMAKE_CURRENT_BINARY_DIR}/#{header} )\n\n") }
end
if not @subDirs.empty?
- @subDirs.each{ |dir| file.printf("ADD_SUBDIRECTORY( %s ) \n", dir)}
+ @subDirs.each{ |dir| file.printf("add_subdirectory( %s ) \n", dir)}
file.printf("\n")
end
if not @skippedSubDirs.empty?
- @skippedSubDirs.each{ |dir| file.printf("MESSAGE(STATUS \"${CMAKE_CURRENT_SOURCE_DIR}: skipped subdir %s\")\n", dir)}
+ @skippedSubDirs.each{ |dir| file.printf("message(STATUS \"${CMAKE_CURRENT_SOURCE_DIR}: skipped subdir %s\")\n", dir)}
end
if not @includeDirs.empty?
- file.printf("INCLUDE_DIRECTORIES( ")
+ file.printf("include_directories( ")
@includeDirs.each{ |dir| file.printf("%s ", dir) }
file.printf(" )\n\n")
end
@@ -609,12 +634,14 @@ class CMakeFile
srcsName=buildTarget.name+"_LIB_SRCS"
elsif buildTarget.type==StaticLib
srcsName=buildTarget.name+"_STAT_SRCS"
+ if $withConvLibs
#<porting info for libtool convenience libs>
- $infoFile.printf("%s: %s\n", @amFile, buildTarget.name)
- $infoFile.printf("SET(%s \n", srcsName)
- buildTarget.sources.each { |currentFile| $infoFile.printf("${CMAKE_SOURCE_DIR}/%s%s\n", @path, currentFile) }
- $infoFile.printf(")\n\n", srcsName)
- next # do nothing for static libs
+ $convFile.printf("# %s: %s\n\n", @amFile, buildTarget.name)
+ $convFile.printf("set(%s \n", srcsName)
+ buildTarget.sources.each { |currentFile| $convFile.printf(" ${CMAKE_SOURCE_DIR}/%s%s\n", @path, currentFile) }
+ $convFile.printf(")\n\n", srcsName)
+ next # do nothing for static libs
+ end
#</porting info for libtool convenience libs>
elsif buildTarget.type==Part
srcsName=buildTarget.name+"_PART_SRCS"
@@ -634,7 +661,7 @@ class CMakeFile
end
if not buildTarget.sources.empty?
- file.printf("SET(%s\n", srcsName)
+ file.printf("set(%s\n", srcsName)
needToCreateDummyFile=false
buildTarget.sources.each do |currentFile|
file.printf("%s\n", currentFile)
@@ -644,118 +671,103 @@ class CMakeFile
end
end
file.printf(")\n\n")
- file.printf("KDE4_AUTOMOC(${%s})\n\n", srcsName)
+ file.printf("kde4_automoc(${%s})\n\n", srcsName)
if needToCreateDummyFile
# printf("creating dummy file in #{@path} ________\n")
- file.printf("FILE(WRITE dummy.cpp \"//autogenerated file by cmake\\n\")\n")
+ file.printf("file(WRITE dummy.cpp \"//autogenerated file by cmake\\n\")\n")
end
end
if not buildTarget.uis.empty?
- file.printf("SET( %s\n", uisName)
+ file.printf("set( %s\n", uisName)
buildTarget.uis.each{ |currentFile| file.printf("%s\n", currentFile)}
file.printf(")\n\n")
- file.printf("KDE4_ADD_UI_FILES(%s ${%s} )\n\n", srcsName, uisName)
+ file.printf("kde4_add_ui_files(%s ${%s} )\n\n", srcsName, uisName)
end
if not buildTarget.ui3s.empty?
- file.printf("SET( %s\n", ui3sName)
+ file.printf("set( %s\n", ui3sName)
buildTarget.ui3s.each{ |currentFile| file.printf("%s\n", currentFile)}
file.printf(")\n\n")
- file.printf("KDE4_ADD_UI3_FILES(%s ${%s} )\n\n", srcsName, ui3sName)
+ file.printf("kde4_add_ui3_files(%s ${%s} )\n\n", srcsName, ui3sName)
end
if not buildTarget.skels.empty?
- file.printf("SET( %s\n", skelsName)
+ file.printf("set( %s\n", skelsName)
buildTarget.skels.each{ |currentFile| file.printf("%s\n", currentFile)}
file.printf(")\n\n")
- file.printf("KDE4_ADD_DCOP_SKELS(%s ${%s})\n\n", srcsName, skelsName)
+ file.printf("kde4_add_dcop_skels(%s ${%s})\n\n", srcsName, skelsName)
end
if not buildTarget.stubs.empty?
- file.printf("SET( %s\n", stubsName)
+ file.printf("set( %s\n", stubsName)
buildTarget.stubs.each{ |currentFile| file.printf("%s\n", currentFile)}
file.printf(")\n\n")
- file.printf("KDE4_ADD_DCOP_STUBS(%s ${%s})\n\n", srcsName, stubsName)
+ file.printf("kde4_add_dcop_stubs(%s ${%s})\n\n", srcsName, stubsName)
end
if not buildTarget.kcfgs.empty?
- file.printf("SET( %s\n", kcfgsName)
+ file.printf("set( %s\n", kcfgsName)
buildTarget.kcfgs.each{ |currentFile| file.printf("%s\n", currentFile)}
file.printf(")\n\n")
- file.printf("KDE4_ADD_KCFG_FILES(%s ${%s})\n\n", srcsName, kcfgsName)
+ file.printf("kde4_add_kcfg_files(%s ${%s})\n\n", srcsName, kcfgsName)
end
if buildTarget.type==SharedLib
- file.printf("ADD_LIBRARY(%s SHARED ${%s})\n\n", buildTarget.name, srcsName)
- file.printf("TARGET_LINK_LIBRARIES(%s ", buildTarget.name)
+ file.printf("kde4_add_library(%s SHARED ${%s})\n\n", buildTarget.name, srcsName)
+ file.printf("target_link_libraries(%s ", buildTarget.name)
buildTarget.libs.each { |currentLib| file.printf(" %s", currentLib) }
file.printf(" )\n\n")
- file.printf("SET_TARGET_PROPERTIES(%s PROPERTIES VERSION 4.2.0 SOVERSION 4 )\n", buildTarget.name)
- file.printf("INSTALL_TARGETS(/lib %s )\n\n", buildTarget.name)
+ file.printf("set_target_properties(%s PROPERTIES VERSION 4.2.0 SOVERSION 4 )\n", buildTarget.name)
+ file.printf("install_targets(/lib %s )\n\n", buildTarget.name)
elsif buildTarget.type==StaticLib
- file.printf("ADD_LIBRARY(%s STATIC ${%s})\n\n", buildTarget.name, srcsName)
+ file.printf("kde4_add_library(%s STATIC ${%s})\n\n", buildTarget.name, srcsName)
elsif buildTarget.type==Part
if buildTarget.stdPrefix
- file.printf("KDE4_ADD_KPART(%s WITH_PREFIX ${%s})\n\n", buildTarget.name, srcsName)
+ file.printf("kde4_add_plugin(%s WITH_PREFIX ${%s})\n\n", buildTarget.name, srcsName)
else
- file.printf("KDE4_ADD_KPART(%s ${%s})\n\n", buildTarget.name, srcsName)
+ file.printf("kde4_add_plugin(%s ${%s})\n\n", buildTarget.name, srcsName)
end
- file.printf("TARGET_LINK_LIBRARIES(%s ", buildTarget.name)
+ file.printf("target_link_libraries(%s ", buildTarget.name)
buildTarget.libs.each { |currentLib| file.printf(" %s", currentLib) }
file.printf(" )\n\n")
- file.printf("INSTALL_TARGETS(/lib/kde4 %s )\n\n", buildTarget.name)
+ file.printf("install_targets(/lib/kde4 %s )\n\n", buildTarget.name)
elsif buildTarget.type==KDEInit
- file.printf("KDE4_ADD_KLM( %s ${%s})\n\n", buildTarget.name, srcsName)
+ file.printf("kde4_add_klm( %s ${%s})\n\n", buildTarget.name, srcsName)
- file.printf("TARGET_LINK_LIBRARIES(kdeinit_%s ", buildTarget.name)
+ file.printf("target_link_libraries(kdeinit_%s ", buildTarget.name)
buildTarget.libs.each { |currentLib| file.printf(" %s", currentLib) }
file.printf(" )\n\n")
- file.printf("INSTALL_TARGETS(/lib kdeinit_%s )\n\n", buildTarget.name)
+ file.printf("install_targets(/lib kdeinit_%s )\n\n", buildTarget.name)
- file.printf("TARGET_LINK_LIBRARIES( %s kdeinit_%s )\n", buildTarget.name, buildTarget.name)
+ file.printf("target_link_libraries( %s kdeinit_%s )\n", buildTarget.name, buildTarget.name)
- file.printf("INSTALL_TARGETS(/bin %s )\n", buildTarget.name)
+ file.printf("install_targets(/bin %s )\n", buildTarget.name)
else #executable
- if $no_kde
-
- file.printf("ADD_EXECUTABLE(%s ${%s})\n\n", buildTarget.name, srcsName)
-
- file.printf("TARGET_LINK_LIBRARIES(%s ", buildTarget.name)
- buildTarget.libs.each { |currentLib| file.printf(" %s", currentLib) }
- file.printf(" )\n\n")
-
- if buildTarget.install
- file.printf("INSTALL_TARGETS(/bin %s )\n\n", buildTarget.name)
- end
-
- else
- if buildTarget.test
- file.printf("IF(KDE4_BUILD_TESTS)\n")
- end
-
- file.printf("KDE4_ADD_EXECUTABLE(%s ${%s})\n\n", buildTarget.name, srcsName)
+ if buildTarget.test
+ file.printf("if(KDE4_BUILD_TESTS)\n")
+ end
- file.printf("TARGET_LINK_LIBRARIES(%s ", buildTarget.name)
- buildTarget.libs.each { |currentLib| file.printf(" %s", currentLib) }
- file.printf(" )\n\n")
+ file.printf("kde4_add_executable(%s ${%s})\n\n", buildTarget.name, srcsName)
- if buildTarget.install
- file.printf("INSTALL_TARGETS(/bin %s )\n\n", buildTarget.name)
- end
+ file.printf("target_link_libraries(%s ", buildTarget.name)
+ buildTarget.libs.each { |currentLib| file.printf(" %s", currentLib) }
+ file.printf(" )\n\n")
- if buildTarget.test
- file.printf("ENDIF(KDE4_BUILD_TESTS)\n")
- end
+ if buildTarget.install
+ file.printf("install_targets(/bin %s )\n\n", buildTarget.name)
+ end
+ if buildTarget.test
+ file.printf("endif(KDE4_BUILD_TESTS)\n")
end
end
@@ -765,15 +777,15 @@ class CMakeFile
file.printf("\n########### install files ###############\n\n")
@installs.each do |key, install|
- file.printf("INSTALL_FILES( %s FILES %s )\n", install.location, install.files)
+ file.printf("install_files( %s FILES %s )\n", install.location, install.files)
end
file.printf("\n")
if @installIcons
- file.printf("KDE4_INSTALL_ICONS( %s )\n\n",@iconDir )
+ file.printf("kde4_install_icons( %s )\n\n",@iconDir )
end
- file.printf("KDE4_PLACEHOLDER()\n\n")
+ file.printf("kde4_placeholder()\n\n")
file.printf("\n\n#original Makefile.am contents follow:\n\n")
@lines.each{ |line| file.printf("#%s", line)}
@@ -797,6 +809,7 @@ if (ARGV.length==1)
$buildType=BuildKDE3
elsif ARGV[0]=="--kde4"
$buildType=BuildKDE4
+ $withConvLibs=true
elsif ARGV[0]=="--help"
printf("--help\t print this help text\n")
printf("--version\t print version information\n")
@@ -805,17 +818,27 @@ if (ARGV.length==1)
printf("--kde4\t create cmake files from KDE 4 unsermake files\n")
elsif ARGV[0]=="--version"
printf("am2cmake (C) 2005, Alexander Neundorf\n")
- printf("Version 0.1, December 11th, 2005\n");
+ printf("Version 0.2, January 13th, 2006\n");
else
printf("Invalid argument, try --help\n")
end
end
+if $withConvLibs
+ $convFile=File.new("ConvenienceLibs.cmake", "w+")
+ $convFile.printf("\n#former libtool convenience libraries:\n\n")
+end
+
+
+$configHeaders=Dir["**/*.h.in"]
+$configInIns=Dir["**/*.in.in"]
+
+infoFile=File.new("AdditionalInfo.txt", "w+")
+infoFile.printf(".h.in-Files\n")
+$configHeaders.each{|inFile| infoFile.printf("%s\n", inFile)}
+infoFile.printf("\n.in.in-Files\n")
+$configInIns.each{|inFile| infoFile.printf("%s\n", inFile)}
-$infoFile.printf("in-Files\n")
-Dir["**/*.in"].each{|inFile| $infoFile.printf("%s\n", inFile)}
-$infoFile.printf("%s\n", "hallo")
-$infoFile.printf("\n\nStatic libs:\n")
Dir["**/Makefile.am"].each{ |currentFile| convertAmFile(currentFile)}