802 lines
22 KiB
Python
Executable File
802 lines
22 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import os
|
|
import sys
|
|
|
|
class Structure:
|
|
def __init__(self, **kwds):
|
|
self.__dict__.update(kwds)
|
|
|
|
TYPE_EXE=0
|
|
TYPE_DLL=1
|
|
|
|
def generate_pro(filename,project):
|
|
|
|
if os.path.isfile(filename):
|
|
os.remove(filename)
|
|
|
|
f=open(filename,'w')
|
|
f.write('''
|
|
# WARNING : automatically generated by utils/generate.py
|
|
|
|
QT -= core gui
|
|
TARGET = ''' + project.name + '''
|
|
''')
|
|
if project.type == TYPE_EXE:
|
|
f.write('''
|
|
CONFIG += console
|
|
CONFIG -= app_bundle
|
|
TEMPLATE = app
|
|
''')
|
|
if project.type == TYPE_DLL:
|
|
f.write('''
|
|
CONFIG += dll
|
|
TEMPLATE = lib
|
|
''')
|
|
|
|
f.write('''
|
|
DESTDIR = ../../../../bin
|
|
|
|
unix: LIBS += -ldl
|
|
|
|
DEFINES+=USE_LIB7Z_DLL
|
|
|
|
''')
|
|
f.write('INCLUDEPATH = \\\n')
|
|
for file in project.includedirs:
|
|
f.write(" {} \\\n".format(file))
|
|
f.write('\n')
|
|
for d in project.defines:
|
|
f.write("DEFINES += " + d + '\n')
|
|
f.write('\n')
|
|
f.write('SOURCES += \\\n')
|
|
for file in project.files_c:
|
|
f.write(" ../../../../{} \\\n".format(file))
|
|
for file in project.files_cpp:
|
|
f.write(" ../../../../{} \\\n".format(file))
|
|
|
|
f.write('''
|
|
macx: LIBS += -framework CoreFoundation
|
|
''')
|
|
f.write('\n')
|
|
f.close()
|
|
|
|
premake4_headers='''
|
|
-- WARNING : automatically generated by utils/generate.py
|
|
solution "p7zip"
|
|
configurations { "Debug", "Release" }
|
|
|
|
-- includes for all projects
|
|
includedirs {
|
|
'''
|
|
|
|
def generate_premake4(filename,project):
|
|
|
|
if os.path.isfile(filename):
|
|
os.remove(filename)
|
|
|
|
f=open(filename,'w')
|
|
f.write(premake4_headers)
|
|
for file in project.includedirs:
|
|
f.write(' "{}",\n'.format(file))
|
|
f.write(' }\n\n')
|
|
defines=""
|
|
for d in project.defines:
|
|
defines+= ', "' + d + '"'
|
|
f.write(' configuration "Debug"\n')
|
|
f.write(' defines { "DEBUG"' + defines + ' }\n')
|
|
f.write(' flags { "Symbols" }\n')
|
|
f.write('\n')
|
|
f.write(' configuration "Release"\n')
|
|
f.write(' defines { "NDEBUG"' + defines + ' }\n')
|
|
f.write(' flags { "Optimize" } \n')
|
|
f.write('\n')
|
|
f.write(' project "all_c_code"\n')
|
|
f.write(' kind "StaticLib"\n')
|
|
f.write(' language "C"\n')
|
|
f.write(' files {\n')
|
|
for file in project.files_c:
|
|
f.write(' "../../../../{}",\n'.format(file))
|
|
f.write(''' }
|
|
|
|
---------------------------------
|
|
project "''' + project.name + '''"
|
|
kind "ConsoleApp"
|
|
language "C++"
|
|
files {
|
|
''')
|
|
for file in project.files_cpp:
|
|
f.write(' "../../../../{}",\n'.format(file))
|
|
f.write('''
|
|
}
|
|
|
|
configuration "linux"
|
|
links { "all_c_code", "pthread" }
|
|
''')
|
|
|
|
f.close()
|
|
|
|
def generate_cmake(filename,project):
|
|
|
|
if os.path.isfile(filename):
|
|
os.remove(filename)
|
|
|
|
f=open(filename,'w')
|
|
f.write('''
|
|
|
|
# WARNING : automatically generated by utils/generate.py
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
''')
|
|
f.write('include_directories(\n')
|
|
for file in project.includedirs:
|
|
f.write(' "{}"\n'.format(file))
|
|
f.write(')\n\n')
|
|
defines=""
|
|
for d in project.defines:
|
|
defines+= ' -D' + d
|
|
f.write('add_definitions(' + defines + ')\n')
|
|
f.write('''
|
|
IF(APPLE)
|
|
add_definitions(-DENV_MACOSX)
|
|
FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation )
|
|
ENDIF(APPLE)
|
|
|
|
''')
|
|
if project.type == TYPE_EXE:
|
|
f.write('add_executable(' + project.name2 + '\n\n')
|
|
if project.type == TYPE_DLL:
|
|
f.write('add_library(' + project.name2 + ' MODULE\n\n')
|
|
for file in project.files_c:
|
|
f.write(' "../../../../{}"\n'.format(file))
|
|
for file in project.files_cpp:
|
|
f.write(' "../../../../{}"\n'.format(file))
|
|
f.write(')\n')
|
|
f.write(project.cmake_end)
|
|
f.close()
|
|
|
|
def to_obj(file):
|
|
file2=os.path.basename(file)
|
|
return os.path.splitext(file2)[0] + '.o'
|
|
|
|
def generate_makefile_list(filename,project,bin_dir='../../../../bin'):
|
|
|
|
if os.path.isfile(filename):
|
|
os.remove(filename)
|
|
|
|
f=open(filename,'w')
|
|
f.write('''
|
|
|
|
# WARNING : automatically generated by utils/generate.py
|
|
|
|
''')
|
|
if project.type == TYPE_EXE:
|
|
f.write('PROG={}/{}$(BINSUFFIX)\n\n'.format(bin_dir,project.name))
|
|
if project.type == TYPE_DLL:
|
|
f.write('PROG={}/{}.so\n\n'.format(bin_dir,project.name))
|
|
|
|
f.write('all: $(PCH_NAME) $(PROG)\n\n')
|
|
|
|
f.write('LOCAL_FLAGS=$(TARGET_FLAGS) \\\n')
|
|
for d in project.defines:
|
|
f.write(' -D{} \\\n'.format(d))
|
|
f.write('\n')
|
|
f.write('SRCS=\\\n')
|
|
for file in project.files_cpp:
|
|
f.write(' ../../../../{} \\\n'.format(file))
|
|
f.write('\n')
|
|
f.write('SRCS_C=\\\n')
|
|
for file in project.files_c:
|
|
f.write(' ../../../../{} \\\n'.format(file))
|
|
f.write('''
|
|
StdAfx.h.gch : ../../../myWindows/StdAfx.h
|
|
\trm -f StdAfx.h.gch
|
|
\t$(CXX) $(CXXFLAGS) ../../../myWindows/StdAfx.h -o StdAfx.h.gch
|
|
''')
|
|
|
|
for file in project.files_c:
|
|
file='../../../../' + file
|
|
f.write('{} : {}\n'.format(to_obj(file),file))
|
|
f.write('\t$(CC) $(CFLAGS) {}\n'.format(file))
|
|
for file in project.files_cpp:
|
|
file='../../../../' + file
|
|
f.write('{} : {}\n'.format(to_obj(file),file))
|
|
f.write('\t$(CXX) $(CXXFLAGS) {}\n'.format(file))
|
|
|
|
f.write('\nOBJS=\\\n')
|
|
for file in project.files_c:
|
|
file=to_obj(file)
|
|
if file == '7zCrcOpt.o':
|
|
f.write(' $(OBJ_CRC32) \\\n')
|
|
else:
|
|
f.write(' {} \\\n'.format(file))
|
|
for file in project.files_cpp:
|
|
f.write(' {} \\\n'.format(to_obj(file)))
|
|
if project.need_AES:
|
|
f.write(' $(OBJ_AES) \\\n')
|
|
|
|
f.write('\n')
|
|
|
|
|
|
f.close()
|
|
|
|
def generate_android_mk(filename,project):
|
|
|
|
if os.path.isfile(filename):
|
|
os.remove(filename)
|
|
|
|
f=open(filename,'w')
|
|
f.write('''#
|
|
# build {} for armeabi and armeabi-v7a CPU
|
|
#
|
|
# WARNING : file generated by generate.py
|
|
#
|
|
|
|
|
|
LOCAL_PATH := $(call my-dir)
|
|
|
|
include $(CLEAR_VARS)
|
|
LOCAL_MODULE := {}
|
|
'''.format(project.name,project.name))
|
|
f.write(project.android_header)
|
|
f.write('LOCAL_SRC_FILES := \\\n')
|
|
for file in project.files_cpp:
|
|
f.write(' ../../../../{} \\\n'.format(file))
|
|
for file in project.files_c:
|
|
f.write(' ../../../../{} \\\n'.format(file))
|
|
|
|
f.write('\n')
|
|
if project.type == TYPE_EXE:
|
|
f.write('# Needed since ANDROID 5, these programs run on android-16 (Android 4.1+)\n')
|
|
f.write('LOCAL_CFLAGS += -fPIE\n')
|
|
f.write('LOCAL_LDFLAGS += -fPIE -pie\n')
|
|
f.write('\n')
|
|
f.write('include $(BUILD_EXECUTABLE)\n\n')
|
|
if project.type == TYPE_DLL:
|
|
# nothing to do here
|
|
f.write('include $(BUILD_SHARED_LIBRARY)\n\n')
|
|
f.close()
|
|
|
|
includedirs_7za=[
|
|
"../../../myWindows",
|
|
"../../../",
|
|
"../../../include_windows"
|
|
]
|
|
|
|
|
|
includedirs_lzham=[ # FIXME
|
|
"../../../../CPP/7zip/Compress/Lzham/include",
|
|
"../../../../CPP/7zip/Compress/Lzham/lzhamcomp",
|
|
"../../../../CPP/7zip/Compress/Lzham/lzhamdecomp",
|
|
"../../../myWindows",
|
|
"../../../",
|
|
"../../../../",
|
|
"../../../include_windows"
|
|
]
|
|
|
|
import file_7za
|
|
import file_7zCon_sfx
|
|
import file_7z
|
|
import file_7zr
|
|
import file_7zG
|
|
import file_7zFM
|
|
import file_7z_so
|
|
import file_Codecs_Rar_so
|
|
import file_Codecs_Lzham_so
|
|
import file_LzmaCon
|
|
import file_Client7z
|
|
import file_P7ZIP
|
|
import file_TestUI
|
|
|
|
|
|
project_7za=Structure(name="7za",name2="7za",
|
|
type=TYPE_EXE,
|
|
need_AES=True,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_7za.files_c,
|
|
files_cpp=file_7za.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(7za ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(7za ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-DBREAK_HANDLER \
|
|
-DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
|
|
-I../../../7zip/Archive \
|
|
-I../../../7zip/Archive/7z \
|
|
-I../../../7zip/Archive/BZip2 \
|
|
-I../../../7zip/Archive/Common \
|
|
-I../../../7zip/Archive/GZip \
|
|
-I../../../7zip/Archive/Cab \
|
|
-I../../../7zip/Archive/Lzma \
|
|
-I../../../7zip/Archive/Tar \
|
|
-I../../../7zip/Archive/Zip \
|
|
-I../../../7zip/Archive/Split \
|
|
-I../../../7zip/Archive/Z \
|
|
-I../../../7zip/Compress \
|
|
-I../../../7zip/Crypto \
|
|
-I../../../7zip/UI/Console \
|
|
-I../../../7zip/UI/Common \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../7zip/Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows
|
|
|
|
''')
|
|
|
|
project_7zr=Structure(name="7zr",name2="7zr",
|
|
type=TYPE_EXE,
|
|
need_AES=True,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "_NO_CRYPTO", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_7zr.files_c,
|
|
files_cpp=file_7zr.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(7zr ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(7zr ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-DBREAK_HANDLER -D_NO_CRYPTO \
|
|
-DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
|
|
-I../../../7zip/Archive \
|
|
-I../../../7zip/Archive/7z \
|
|
-I../../../7zip/Archive/BZip2 \
|
|
-I../../../7zip/Archive/Common \
|
|
-I../../../7zip/Archive/GZip \
|
|
-I../../../7zip/Archive/Cab \
|
|
-I../../../7zip/Archive/Lzma \
|
|
-I../../../7zip/Archive/Tar \
|
|
-I../../../7zip/Archive/Zip \
|
|
-I../../../7zip/Archive/Split \
|
|
-I../../../7zip/Archive/Z \
|
|
-I../../../7zip/Compress \
|
|
-I../../../7zip/Crypto \
|
|
-I../../../7zip/UI/Console \
|
|
-I../../../7zip/UI/Common \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../7zip/Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows
|
|
|
|
''')
|
|
|
|
project_7zCon_sfx=Structure(name="7zCon.sfx",name2="7zCon.sfx",
|
|
type=TYPE_EXE,
|
|
need_AES=True,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE", "EXTRACT_ONLY", "NO_READ_FROM_CODER", "_SFX" ],
|
|
files_c=file_7zCon_sfx.files_c,
|
|
files_cpp=file_7zCon_sfx.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(7zCon.sfx ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(7zCon.sfx ${CMAKE_THREAD_LIBS_INIT})
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''')
|
|
|
|
project_7z=Structure(name="7z",name2="7z_",
|
|
type=TYPE_EXE,
|
|
need_AES=False,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_7z.files_c,
|
|
files_cpp=file_7z.files_cpp,
|
|
cmake_end='''
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(7z_ ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(7z_ ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-DEXTERNAL_CODECS \
|
|
-DBREAK_HANDLER \
|
|
-DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows
|
|
''')
|
|
|
|
project_Codecs_Rar=Structure(name="Rar",name2="Rar",
|
|
type=TYPE_DLL,
|
|
need_AES=False,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_Codecs_Rar_so.files_c,
|
|
files_cpp=file_Codecs_Rar_so.files_cpp,
|
|
cmake_end='''
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(Rar ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(Rar ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-DEXTERNAL_CODECS \
|
|
-DBREAK_HANDLER \
|
|
-DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows
|
|
''')
|
|
|
|
|
|
|
|
project_Codecs_Lzham=Structure(name="Lzham",name2="Lzham",
|
|
type=TYPE_DLL,
|
|
need_AES=False,
|
|
includedirs=includedirs_lzham,
|
|
defines=[ "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_Codecs_Lzham_so.files_c,
|
|
files_cpp=file_Codecs_Lzham_so.files_cpp,
|
|
cmake_end='''
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(Lzham ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(Lzham ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-DEXTERNAL_CODECS \
|
|
-DBREAK_HANDLER \
|
|
-DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows \
|
|
-I../../../../CPP/7zip/Compress/Lzham/include \
|
|
-I../../../../CPP/7zip/Compress/Lzham/lzhamcomp \
|
|
-I../../../../CPP/7zip/Compress/Lzham/lzhamdecomp
|
|
|
|
''')
|
|
|
|
|
|
project_7zG=Structure(name="7zG",name2="7zG",
|
|
type=TYPE_EXE,
|
|
need_AES=False,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "LANG", "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_7zG.files_c,
|
|
files_cpp=file_7zG.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
add_definitions(-DENV_MACOSX -D__WXMAC__)
|
|
ENDIF(APPLE)
|
|
|
|
find_package(wxWidgets COMPONENTS core base adv REQUIRED)
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
include( ${wxWidgets_USE_FILE} )
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(7zG ${COREFOUNDATION_LIBRARY} ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(7zG ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''')
|
|
|
|
project_7zFM=Structure(name="7zFM_do_not_use",name2="7zFM_do_not_use",
|
|
type=TYPE_EXE,
|
|
need_AES=False,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "LANG", "NEW_FOLDER_INTERFACE", "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_7zFM.files_c,
|
|
files_cpp=file_7zFM.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
add_definitions(-DENV_MACOSX -D__WXMAC__)
|
|
ENDIF(APPLE)
|
|
|
|
find_package(wxWidgets COMPONENTS core base adv REQUIRED)
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
include( ${wxWidgets_USE_FILE} )
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(7zFM_do_not_use ${COREFOUNDATION_LIBRARY} ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(7zFM_do_not_use ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''')
|
|
|
|
project_Format7zFree=Structure(name="7z",name2="7z",
|
|
type=TYPE_DLL,
|
|
need_AES=True,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_7z_so.files_c,
|
|
files_cpp=file_7z_so.files_cpp,
|
|
cmake_end='''
|
|
|
|
SET_TARGET_PROPERTIES(7z PROPERTIES PREFIX "")
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(7z ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(7z ${CMAKE_THREAD_LIBS_INIT})
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-DEXTERNAL_CODECS \
|
|
-DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows
|
|
|
|
''')
|
|
|
|
project_LzmaCon=Structure(name="LzmaCon",name2="LzmaCon",
|
|
type=TYPE_EXE,
|
|
need_AES=True,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX" ],
|
|
files_c=file_LzmaCon.files_c,
|
|
files_cpp=file_LzmaCon.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(LzmaCon ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(LzmaCon ${CMAKE_THREAD_LIBS_INIT})
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-I../../../7zip/Archive \
|
|
-I../../../7zip/Archive/7z \
|
|
-I../../../7zip/Archive/BZip2 \
|
|
-I../../../7zip/Archive/Common \
|
|
-I../../../7zip/Archive/GZip \
|
|
-I../../../7zip/Archive/Cab \
|
|
-I../../../7zip/Archive/Lzma \
|
|
-I../../../7zip/Archive/Tar \
|
|
-I../../../7zip/Archive/Zip \
|
|
-I../../../7zip/Archive/Split \
|
|
-I../../../7zip/Archive/Z \
|
|
-I../../../7zip/Compress \
|
|
-I../../../7zip/Crypto \
|
|
-I../../../7zip/UI/Console \
|
|
-I../../../7zip/UI/Common \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../7zip/Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows
|
|
|
|
''')
|
|
|
|
project_Client7z=Structure(name="Client7z",name2="Client7z",
|
|
type=TYPE_EXE,
|
|
need_AES=False,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_Client7z.files_c,
|
|
files_cpp=file_Client7z.files_cpp,
|
|
cmake_end='''
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(Client7z ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(Client7z ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''',
|
|
android_header=r'''
|
|
LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
|
|
-DNDEBUG -D_REENTRANT -DENV_UNIX \
|
|
-DEXTERNAL_CODECS \
|
|
-DBREAK_HANDLER \
|
|
-DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
|
|
-I../../../Windows \
|
|
-I../../../Common \
|
|
-I../../../../C \
|
|
-I../../../myWindows \
|
|
-I../../../ \
|
|
-I../../../include_windows
|
|
''')
|
|
|
|
project_P7ZIP=Structure(name="P7ZIP",name2="P7ZIP",
|
|
type=TYPE_EXE,
|
|
need_AES=False,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "LANG", "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_P7ZIP.files_c,
|
|
files_cpp=file_P7ZIP.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
add_definitions(-DENV_MACOSX -D__WXMAC__)
|
|
ENDIF(APPLE)
|
|
|
|
find_package(wxWidgets COMPONENTS core base adv REQUIRED)
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
include( ${wxWidgets_USE_FILE} )
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(P7ZIP ${COREFOUNDATION_LIBRARY} ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(P7ZIP ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''')
|
|
|
|
project_TestUI=Structure(name="TestUI",name2="TestUI",
|
|
type=TYPE_EXE,
|
|
need_AES=False,
|
|
includedirs=includedirs_7za,
|
|
defines=[ "LANG", "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
|
|
files_c=file_TestUI.files_c,
|
|
files_cpp=file_TestUI.files_cpp,
|
|
cmake_end='''
|
|
|
|
IF(APPLE)
|
|
add_definitions(-DENV_MACOSX -D__WXMAC__)
|
|
ENDIF(APPLE)
|
|
|
|
find_package(wxWidgets COMPONENTS core base adv REQUIRED)
|
|
|
|
find_library(DL_LIB dl)
|
|
|
|
include( ${wxWidgets_USE_FILE} )
|
|
|
|
link_directories(${DL_LIB_PATH})
|
|
|
|
IF(APPLE)
|
|
TARGET_LINK_LIBRARIES(TestUI ${COREFOUNDATION_LIBRARY} ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSE(APPLE)
|
|
IF(HAVE_PTHREADS)
|
|
TARGET_LINK_LIBRARIES(TestUI ${wxWidgets_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} dl)
|
|
ENDIF(HAVE_PTHREADS)
|
|
ENDIF(APPLE)
|
|
|
|
''')
|
|
generate_makefile_list('../CPP/7zip/Bundles/Alone/makefile.list',project_7za)
|
|
generate_makefile_list('../CPP/7zip/Bundles/Alone7z/makefile.list',project_7zr)
|
|
generate_makefile_list('../CPP/7zip/UI/Console/makefile.list',project_7z)
|
|
generate_makefile_list('../CPP/7zip/Bundles/Format7zFree/makefile.list',project_Format7zFree)
|
|
generate_makefile_list('../CPP/7zip/Compress/Rar/makefile.list',project_Codecs_Rar,'../../../../bin/Codecs')
|
|
generate_makefile_list('../CPP/7zip/Compress/Lzham/makefile.list',project_Codecs_Lzham,'../../../../bin/Codecs')
|
|
generate_makefile_list('../CPP/7zip/Bundles/SFXCon/makefile.list',project_7zCon_sfx)
|
|
generate_makefile_list('../CPP/7zip/UI/GUI/makefile.list',project_7zG)
|
|
generate_makefile_list('../CPP/7zip/UI/FileManager/makefile.list',project_7zFM)
|
|
generate_makefile_list('../CPP/7zip/Bundles/LzmaCon/makefile.list',project_LzmaCon)
|
|
generate_makefile_list('../CPP/7zip/UI/Client7z/makefile.list',project_Client7z)
|
|
generate_makefile_list('../CPP/7zip/UI/P7ZIP/makefile.list',project_P7ZIP)
|
|
generate_makefile_list('../CPP/7zip/TEST/TestUI/makefile.list',project_TestUI)
|
|
|
|
generate_pro('../CPP/7zip/QMAKE/7za/7za.pro',project_7za)
|
|
generate_pro('../CPP/7zip/QMAKE/7zr/7zr.pro',project_7zr)
|
|
generate_pro('../CPP/7zip/QMAKE/7z_/7z_.pro',project_7z)
|
|
generate_pro('../CPP/7zip/QMAKE/Format7zFree/Format7zFree.pro',project_Format7zFree)
|
|
generate_pro('../CPP/7zip/QMAKE/Rar/Rar.pro',project_Codecs_Rar)
|
|
generate_pro('../CPP/7zip/QMAKE/Lzham/Lzham.pro',project_Codecs_Lzham)
|
|
|
|
generate_premake4('../CPP/7zip/PREMAKE/premake4.lua',project_7za)
|
|
|
|
generate_cmake('../CPP/7zip/CMAKE/7za/CMakeLists.txt',project_7za)
|
|
generate_cmake('../CPP/7zip/CMAKE/7z_/CMakeLists.txt',project_7z)
|
|
generate_cmake('../CPP/7zip/CMAKE/7zG/CMakeLists.txt',project_7zG)
|
|
generate_cmake('../CPP/7zip/CMAKE/7zFM/CMakeLists.txt',project_7zFM)
|
|
generate_cmake('../CPP/7zip/CMAKE/7zr/CMakeLists.txt',project_7zr)
|
|
generate_cmake('../CPP/7zip/CMAKE/Format7zFree/CMakeLists.txt',project_Format7zFree)
|
|
|
|
|
|
generate_android_mk('../CPP/ANDROID/7za/jni/Android.mk',project_7za)
|
|
generate_android_mk('../CPP/ANDROID/7zr/jni/Android.mk',project_7zr)
|
|
generate_android_mk('../CPP/ANDROID/7z/jni/Android.mk',project_7z)
|
|
generate_android_mk('../CPP/ANDROID/Format7zFree/jni/Android.mk',project_Format7zFree)
|
|
generate_android_mk('../CPP/ANDROID/Lzham/jni/Android.mk',project_Codecs_Lzham)
|
|
|
|
|
|
#FIXME:7zr-CPP/7zip/Bundles/Alone7z
|
|
|
|
|